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 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); } }