protected virtual CompositeIdentityPart <T> KeyReference(Member member, IEnumerable <string> columnNames, Action <KeyManyToOnePart> customMapping)
        {
            onMemberMapped(member);

            var key = new KeyManyToOneMapping
            {
                ContainingEntityType = typeof(T)
            };

            key.Set(x => x.Name, Layer.Defaults, member.Name);
            key.Set(x => x.Class, Layer.Defaults, new TypeReference(member.PropertyType));

            foreach (var column in columnNames)
            {
                var columnMapping = new ColumnMapping();
                columnMapping.Set(x => x.Name, Layer.Defaults, column);
                key.AddColumn(columnMapping);
            }

            var keyPart = new KeyManyToOnePart(key);

            if (customMapping != null)
            {
                customMapping(keyPart);
            }

            keys.Add(key);

            return(this);
        }
Пример #2
0
 public static void ForeignKey(this KeyManyToOneMapping keyManyToOneMapping, string foreignKeyName)
 {
     if (!keyManyToOneMapping.IsSpecified("ForeignKey"))
     {
         keyManyToOneMapping.Set <string>(c => c.ForeignKey, 1, foreignKeyName);
     }
 }
Пример #3
0
 public KeyManyToOnePart ForeignKey(string foreignKey)
 {
     mapping.Set(x => x.ForeignKey, Layer.UserSupplied, foreignKey);
     return(this);
 }
Пример #4
0
 public KeyManyToOnePart(KeyManyToOneMapping mapping)
 {
     this.mapping = mapping;
     Access       = new AccessStrategyBuilder <KeyManyToOnePart>(this, value => mapping.Set(x => x.Access, Layer.UserSupplied, value));
     NotFound     = new NotFoundExpression <KeyManyToOnePart>(this, value => mapping.Set(x => x.NotFound, Layer.UserSupplied, value));
 }
Пример #5
0
 public KeyManyToOnePart(KeyManyToOneMapping mapping)
 {
     this.mapping = mapping;
     Access = new AccessStrategyBuilder<KeyManyToOnePart>(this, value => mapping.Set(x => x.Access, Layer.UserSupplied, value));
     NotFound = new NotFoundExpression<KeyManyToOnePart>(this, value => mapping.Set(x => x.NotFound, Layer.UserSupplied, value));
 }
 public new void ForeignKey(string name)
 {
     mapping.Set(x => x.ForeignKey, Layer.Conventions, name);
 }