Есть ли причина, по которой Entity Framework размещает директиву using?

Если я добавлю новую миграцию (сначала код EF), структура моей новой миграции класса / базы данных будет выглядеть примерно так:

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

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

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

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

user1672994 01.05.2018 17:39

@ user1672994 "however, having using inside namespace and outside namespace does not matter.", то есть полностью ложь

maccettura 01.05.2018 17:44

В приведенном выше коде оператор using находится вне области пространства имен. Это то, что генерирует EF?

iCode 01.05.2018 18:04

@maccettura - Спасибо. Отметил, что.

user1672994 01.05.2018 18:19

@maccettura Вы, конечно, правы, но я считаю, что все примеры различий чрезвычайно надуманы. Обычно я бы сказал: «Использование директив внутри или вне пространства имен не имеет значения если вы не делаете какую-то сумасшедшую ерунду с пространствами имен.».

BJ Myers 01.05.2018 18:21

@iCode - не знаю, как это произошло, отредактировал OP, спасибо.

user1017882 02.05.2018 10:06

Ах, кажется, кто-то отредактировал мой вопрос, чтобы переместить директиву using, что полностью противоречит цели вопроса.

user1017882 02.05.2018 10:16
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
8
60
1

Ответы 1

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

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

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

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

Другие вопросы по теме