Есть ли причина, по которой Entity Framework использует размещение директив? - PullRequest
0 голосов
/ 01 мая 2018

Если я добавлю новую миграцию (EF code-first), структура моей новой миграции class / db будет выглядеть примерно так:

namespace MySolutionNamespace.MyProjectNamespace
{
    using System.Data.Entity.Migrations;

    public partial class MyMigration : DbMigration
    {
        //....
    }
}

Является ли причиной того, что операторы using отображаются в пределах пространства имен, задокументированного где-либо?

1 Ответ

0 голосов
/ 01 мая 2018

Есть несколько хороших постов / ответов на эту тему. Ниже объясняется, как вы можете столкнуться с проблемами при определении пространства имен в верхней части файла: https://stackoverflow.com/a/151560/1617161

Вот еще одно обсуждение потенциальных проблем: https://stackoverflow.com/a/1342873/1617161

Я всегда размещал их в верхней части файла, что кажется безопасным, если ваши пространства имен и классы сильно зависят от приложения; то есть. Не будет конфликтовать с другими Dll.

Я полагаю, что это специфично для Entity Framework, и они пытаются предотвратить конфликты с классами в пространстве имен System.Data.Entity.Migrations. Размещение внутри пространства имен уменьшает вероятность взлома чьего-либо кода, класс которого имеет то же имя, что и класс в пространстве имен System.Data.Entity.Migrations.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...