public void Configure(EntityInfo entityInfo, DbTableInfoBuilder builder) { foreach (ITableConfiguration configuration in this.members) { configuration.Configure(entityInfo, builder); } }
public void Configure(EntityInfo entityInfo, DbTableInfoBuilder builder) { string tableName = entityInfo.TableName; builder.EntityType = this.schema.GetEntityType(tableName); builder.Name = tableName; }
public void Configure(EntityInfo entityInfo, DbTableInfoBuilder builder) { foreach (EntityPropertyInfo property in entityInfo.Properties) { if (property.Facets.Identity && IsIdentityType(property.ClrType)) { builder.IdentityField = builder.FindMember(property); } } }
public void Configure(EntityInfo entityInfo, DbTableInfoBuilder builder) { foreach (EntityPropertyInfo property in entityInfo.Properties) { if (!property.Facets.Nullable && TypeHelper.IsNullable(property.ClrType)) { MemberInfo member = builder.FindMember(property); object factory = ConstraintFactories.NotNull(member); builder.AddContraintFactory(factory); } } }
public void Configure(EntityInfo entityInfo, DbTableInfoBuilder builder) { foreach (EntityPropertyInfo property in entityInfo.Properties) { if (property.Facets.Identity && property.ClrType == typeof(Guid)) { MemberInfo member = builder.FindMember(property); object factory = ConstraintFactories.GeneratedGuid(member); builder.AddContraintFactory(factory); } } }
public void Configure(EntityInfo entityInfo, DbTableInfoBuilder builder) { IList<PropertyInfo> keyMembers = new List<PropertyInfo>(); foreach (EntityPropertyInfo property in entityInfo.KeyMembers) { PropertyInfo member = builder.FindMember(property); keyMembers.Add(member); } builder.PrimaryKey = KeyInfoHelper.CreateKeyInfo(builder.EntityType, keyMembers.ToArray()); }
public void Configure(EntityInfo entityInfo, DbTableInfoBuilder builder) { IList <PropertyInfo> keyMembers = new List <PropertyInfo>(); foreach (EntityPropertyInfo property in entityInfo.KeyMembers) { PropertyInfo member = builder.FindMember(property); keyMembers.Add(member); } builder.PrimaryKey = KeyInfoHelper.CreateKeyInfo(builder.EntityType, keyMembers.ToArray()); }
public static IKeyInfo EnsureKey( MemberInfo[] members, bool unique, DbTableInfoBuilder tableBuilder) { IKeyInfo keyInfo = tableBuilder.FindKey(members, false, unique); if (keyInfo == null) { keyInfo = KeyInfoHelper.CreateKeyInfo(tableBuilder.EntityType, members); tableBuilder.AddKey(keyInfo, unique); } return(keyInfo); }
public static IKeyInfo EnsureKey( MemberInfo[] members, bool unique, DbTableInfoBuilder tableBuilder) { IKeyInfo keyInfo = tableBuilder.FindKey(members, false, unique); if (keyInfo == null) { keyInfo = KeyInfoHelper.CreateKeyInfo(tableBuilder.EntityType, members); tableBuilder.AddKey(keyInfo, unique); } return keyInfo; }
public void Configure(EntityInfo entityInfo, DbTableInfoBuilder builder) { foreach (EntityPropertyInfo property in entityInfo.Properties) { if (property.ClrType == typeof(string) && property.Facets.LimitedLength) { MemberInfo member = builder.FindMember(property); int length = property.Facets.MaxLength; object factory = ConstraintFactories.VarCharLimit(member, length); builder.AddContraintFactory(factory); } } }
public void Configure(EntityInfo entityInfo, DbTableInfoBuilder builder) { var indexes = entityInfo .Properties .SelectMany(p => p.Indexes, (p, i) => new { Property = p, Index = i }) .GroupBy(x => x.Index.Name); foreach (var indexGroup in indexes) { var index = indexGroup.First().Index; var indexProps = indexGroup .OrderBy(x => x.Index.Order) .Select(x => builder.FindMember(x.Property)) .ToArray(); var keyInfo = KeyInfoHelper.CreateKeyInfo(builder.EntityType, indexProps); builder.AddKey(keyInfo, index.IsUnique); } }
public void Configure(AssociationInfo associationInfo, DbSchemaBuilder builder) { var primary = associationInfo.PrimaryTable; var foreign = associationInfo.ForeignTable; DbTableInfoBuilder primaryTable = builder.Find(primary.TableName); DbTableInfoBuilder foreignTable = builder.Find(foreign.TableName); MemberInfo[] primaryKeyMembers = GetMembers( primaryTable.EntityType, primary.PropertyNames); MemberInfo[] foreignKeyMembers = GetMembers( foreignTable.EntityType, foreign.PropertyNames); IKeyInfo primaryKeyInfo = EnsureKey( primaryKeyMembers, true, primaryTable); IKeyInfo foreignKeyInfo = EnsureKey( foreignKeyMembers, false, foreignTable); IRelationContraint[] relationConstraints = new IRelationContraint[primaryKeyMembers.Length]; for (int i = 0; i < relationConstraints.Length; i++) { relationConstraints[i] = new RelationConstraint(primaryKeyMembers[i], foreignKeyMembers[i]); } Delegate primaryToForeignConverter = CreateConverter( PrimaryToForeignConverterMethod, primaryKeyInfo, foreignKeyInfo, relationConstraints); Delegate foreignToPrimaryConverter = CreateConverter( ForeignToPrimaryConverterMethod, primaryKeyInfo, foreignKeyInfo, relationConstraints); builder.Register( new DbRelationInfo( primaryTable: primary.TableName, primaryKeyInfo: primaryKeyInfo, primaryToForeignConverter: primaryToForeignConverter, foreignTable: foreign.TableName, foreignKeyInfo: foreignKeyInfo, foreignToPrimaryConverter: foreignToPrimaryConverter, cascadedDelete: associationInfo.CascadedDelete)); }