Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / How to stop EF Core from indexing all foreign keys / 4 сообщений из 4, страница 1 из 1
02.04.2019, 07:31
    #39794913
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
How to stop EF Core from indexing all foreign keys
How to stop EF Core from indexing all foreign keys

Появился способ? Или, как там советуют, вручную удалять создание лишних индексов из файлов миграций?
...
Рейтинг: 0 / 0
02.04.2019, 08:27
    #39794933
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
How to stop EF Core from indexing all foreign keys
Алексей К How to stop EF Core from indexing all foreign keys

Появился способ? Или, как там советуют, вручную удалять создание лишних индексов из файлов миграций?а зачем это надо?
База давно сама решает где нужен индекс и где нет.
Делай DBFirst.
...
Рейтинг: 0 / 0
02.04.2019, 09:51
    #39794975
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
How to stop EF Core from indexing all foreign keys
Petro123а зачем это надо?Хочется мне...

Ниже решение, если кому интересно. Используется внутренний API, в последующих версиях EF может перестать работать.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
    ....
    optionsBuilder.ReplaceService<ICoreConventionSetBuilder, AppCoreConventionSetBuilder>();
    ....

    class AppCoreConventionSetBuilder : CoreConventionSetBuilder
    {
        public AppCoreConventionSetBuilder(CoreConventionSetBuilderDependencies dependencies)
            : base(dependencies)
        { }

        public override ConventionSet CreateConventionSet()
        {
            var result = base.CreateConventionSet();

            var foreignKeyIndexConvention = result.BaseEntityTypeChangedConventions.OfType<ForeignKeyIndexConvention>().First();
            result.BaseEntityTypeChangedConventions.Remove(foreignKeyIndexConvention);
            result.KeyAddedConventions.Remove(foreignKeyIndexConvention);
            result.KeyRemovedConventions.Remove(foreignKeyIndexConvention);
            result.ForeignKeyAddedConventions.Remove(foreignKeyIndexConvention);
            result.ForeignKeyRemovedConventions.Remove(foreignKeyIndexConvention);
            result.ForeignKeyUniquenessChangedConventions.Remove(foreignKeyIndexConvention);
            result.ModelBuiltConventions.Remove(foreignKeyIndexConvention);
            result.IndexAddedConventions.Remove(foreignKeyIndexConvention);
            result.IndexRemovedConventions.Remove(foreignKeyIndexConvention);
            result.IndexUniquenessChangedConventions.Remove(foreignKeyIndexConvention);

            return result;
        }
    }
...
Рейтинг: 0 / 0
08.04.2019, 13:42
    #39798095
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
How to stop EF Core from indexing all foreign keys
Алексей К,

пока нет пользовательских соглашений, это вроде как ещё планируется.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / How to stop EF Core from indexing all foreign keys / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]