示例#1
0
        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;
        }
示例#3
0
        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);
            }
        }
示例#4
0
        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);
            }
        }