Index: Mapping/IOneToManyPart.cs
===================================================================
--- Mapping/IOneToManyPart.cs	(revision 453)
+++ Mapping/IOneToManyPart.cs	(working copy)
@@ -29,5 +29,7 @@
         /// </summary>
         IOneToManyPart Not { get; }
         IColumnNameCollection KeyColumnNames { get; }
+
+        IOneToManyPart WithForeignKeyConstraintName(string foreignKeyName);
     }
 }
Index: Mapping/ManyToManyPart.cs
===================================================================
--- Mapping/ManyToManyPart.cs	(revision 453)
+++ Mapping/ManyToManyPart.cs	(working copy)
@@ -15,6 +15,7 @@
         void WithParentKeyColumn(string name);
         INotFoundExpression NotFound { get; }
         CollectionCascadeExpression<IManyToManyPart> Cascade { get; }
+        IManyToManyPart WithForeignKeyConstraintNames(string parentForeignKeyName, string childForeignKeyName);
     }
 
 	public class ManyToManyPart<CHILD> : ToManyBase<ManyToManyPart<CHILD>, CHILD>, IManyToManyPart
@@ -52,6 +53,13 @@
 			return this;
 		}
 
+        IManyToManyPart IManyToManyPart.WithForeignKeyConstraintNames(string parentForeignKeyName, string childForeignKeyName)
+        {
+            WithForeignKeyConstraintNames(parentForeignKeyName, childForeignKeyName);
+
+            return this;
+        }
+
         public ManyToManyPart<CHILD> WithForeignKeyConstraintNames(string parentForeignKeyName, string childForeignKeyName) {
             _parentKeyProperties.Store("foreign-key", parentForeignKeyName);
             _manyToManyProperties.Store("foreign-key", childForeignKeyName);
Index: Mapping/ManyToOnePart.cs
===================================================================
--- Mapping/ManyToOnePart.cs	(revision 453)
+++ Mapping/ManyToOnePart.cs	(working copy)
@@ -14,6 +14,8 @@
         PropertyInfo Property { get; }
         IManyToOnePart ColumnName(string columnName);
         INotFoundExpression NotFound { get; }
+        IManyToOnePart WithForeignKey();
+        IManyToOnePart WithForeignKey(string foreignKeyName);
     }
 
     public class ManyToOnePart<OTHER> : IManyToOnePart, IAccessStrategy<ManyToOnePart<OTHER>>
@@ -228,6 +230,16 @@
             get { return Access; }
         }
 
+        IManyToOnePart IManyToOnePart.WithForeignKey(string foreignKeyName)
+        {
+            this.WithForeignKey(foreignKeyName);
+            return this;
+        }
+        IManyToOnePart IManyToOnePart.WithForeignKey()
+        {
+            this.WithForeignKey();
+            return this;
+        }
         #endregion
     }
 }
Index: Mapping/OneToManyPart.cs
===================================================================
--- Mapping/OneToManyPart.cs	(revision 453)
+++ Mapping/OneToManyPart.cs	(working copy)
@@ -1,5 +1,4 @@
-﻿using System.Collections.Generic;
-using System.Reflection;
+﻿using System.Reflection;
 using System.Xml;
 using System;
 
@@ -139,6 +138,12 @@
 
         #region Explicit IOneToManyPart Implementation
 
+        IOneToManyPart IOneToManyPart.WithForeignKeyConstraintName(string foreignKeyName)
+        {
+            this.WithForeignKeyConstraintName(foreignKeyName);
+            return this;
+        }
+
         CollectionCascadeExpression<IOneToManyPart> IOneToManyPart.Cascade
         {
             get { return new CollectionCascadeExpression<IOneToManyPart>(this); }
Index: Mapping/OneToOnePart.cs
===================================================================
--- Mapping/OneToOnePart.cs	(revision 453)
+++ Mapping/OneToOnePart.cs	(working copy)
@@ -9,6 +9,9 @@
     public interface IOneToOnePart : IRelationship
     {
         CascadeExpression<IOneToOnePart> Cascade { get; }
+        PropertyInfo Property { get; }
+        IOneToOnePart WithForeignKey();
+        IOneToOnePart WithForeignKey(string foreignKeyName);
     }
 
     public class OneToOnePart<OTHER> : IOneToOnePart, IAccessStrategy<OneToOnePart<OTHER>>
@@ -29,7 +32,12 @@
                 return new FetchTypeExpression<OneToOnePart<OTHER>>(this, _properties);
             }
         }
-        
+
+        public PropertyInfo Property
+        {
+            get { return _property; }
+        }
+
         public OneToOnePart<OTHER> WithForeignKey() {
             return WithForeignKey(string.Format("FK_{0}To{1}", _property.DeclaringType.Name, _property.Name));
         }
@@ -106,6 +114,17 @@
             get { return Access; }
         }
 
+        IOneToOnePart IOneToOnePart.WithForeignKey(string foreignKeyName)
+        {
+            this.WithForeignKey(foreignKeyName);
+            return this;
+        }
+        IOneToOnePart IOneToOnePart.WithForeignKey()
+        {
+            this.WithForeignKey();
+            return this;
+        }
+
         #endregion
     }
 }
