Entity Framework: Соглашения об именах / предложения для файла EDMX и класса сущностей? - PullRequest
10 голосов
/ 22 марта 2012

У меня еще не было много контактов с Entity Framework, и поэтому я хотел бы услышать некоторых ребят с опытом.

У меня есть проект MVC, и мой DataAccess находится в другом проекте, где я хочу разместить свой файл EDMX.

Так как бы я хотел назвать этот файл? По умолчанию это «Model1.edmx», но в контексте MVC я не чувствую себя комфортно с этим именем. Это действительно модель? Я склонен называть это «DbModel» или что-то, что указывает на то, что это связано с базой данных.

А как вы, ребята, называете класс сущностей? Я думаю, что мне нравится типичное имя EF "DbContext".

Так что в моих контроллерах у меня будет что-то вроде

public class WorldController : Controller
{
    DbContext db = new DbContext();

    public ActionResult Own()
    {
        var allContinents = db.Continents;
        [...]
    }
}

Извините за суету, но я действительно забочусь о наименовании.

Ответы [ 2 ]

7 голосов
/ 25 марта 2012

Хорошо позаботиться о присвоении имен!

Как это сделать, зависит от состава вашего приложения.Допустим, у вас есть веб-приложение для регистрации наблюдений НЛО, чтобы назвать что-то общее.Если есть отдельная часть вашей базы данных (возможно, отдельная схема), содержащая пользователей, роли и разрешения, вы можете создать контекст с именем AuthorizationContext, а для бизнес-части - контекст с именем UfoDbContext.

Я имею в виду, еслиСуществуют явные агрегаты без или с небольшим перекрытием, для которых можно создать отдельные контексты с ясными именами.Если один контекст соответствует требованиям, я бы все же дал ему какое-то осмысленное имя (не DbContext), которое относится к домену вашего приложения.

Есть люди (я не один из них), которым нравится работать с однимконтекст для приложения "столбец" (дБ в пользовательский интерфейс) или "пользовательская история".Значимые имена еще важнее.

3 голосов
/ 25 марта 2012

Мое предложение будет использовать что-то, что указывает на содержание в именовании. Например, вы можете взять часть названия вашего проекта и включить его в название EDMX. Включите что-то, что делает его менее общим.

Я также склоняюсь к включению "Ef" в мои имена, которые я начал, работая над проектом, в котором уже был ORM.

Возьмем прототипный пример Microsoft: если ваш проект попал под зонтичное имя Norwind, вот как я бы назвал некоторые файлы в моем модельном проекте:

EDMX файл: NorwindEfModel.edmx

Генератор / ТТ файл: NorwindEfDbContext.tt

Класс сущностей: NorwindEntities

Я не могу сказать, что именно так и поступила бы Microsoft, если бы вы загрузили у них пример проекта (хотя я считаю, что он будет похожим), но я думаю, что это разумная структура именования, которая соответствует моим потребностям. Суть в том, что это в значительной степени сводится к мнению и вашей потребности в конкретных различиях.

...