Pull to refresh

Comments 5

А почему вы не рассматриваете EF CodeFirst, в котором это, если мне не изменяет память, делается одной конвенцией?
Дело в том, что задача возникла в реальном проекте, в котором было принято решение использовать Database First.
Кроме названий таблиц, глаз могут резать и названия полей (ORDER_PRODUCT_ID, а хочется OrderProductId или просто Id в классе OrderProduct).

Ещё, мне было бы не хотелось получить простыню авто-генерированного кода и вставить его в проект (кто знает, какие там связи криво отмапились).
Может, я занимаюсь ерундой, но я бы импортировал базу в отдельный проект, рабочий сделал бы пустым по принципу Code-First и перетаскивал туда entity-классы по мере необходимости, переименовывая поля и проверяя связи. Маловероятно, что при разработке новой фичи сразу потребуется 10 таблиц. А по 2-3 за раз переносить не трудно.
Вдруг кому-нибудь поможет, вот пример конвенции, которая поможет решить проблему:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entities().Configure(entity => entity.ToTable("t_" + entity.ClrType.Name));
    }


Работает для EF Code First.
Честно, говоря, очень странное правило Урсулы и нет никакого смысла им пользоваться. Если им пользоваться, то таблицу t_users следовало бы назвать Messages.
Sign up to leave a comment.

Articles