Проверка MVC3 сначала с помощью Entity Framework Model / Database - PullRequest
9 голосов
/ 21 июля 2011

Я хочу использовать MVC 3 и Entity Framework для моего приложения.

Модель будет храниться в сборке, отличной от приложения MVC.

Выбор, который я делаю, заключается в том, чтобы либо использовать EF для создания моих сущностей, либо сначала использовать код.

Сначала с помощью кода я могу декорировать элементы с помощью [Обязательных] и т. Д. ... Но как мне добавить эти атрибуты, если EF генерирует сущности из БД?

Создание EF моих сущностей сэкономит много времени, но я хочу, чтобы MVC автоматически заполнял валидацию в зависимости от того, как я украсил своих участников. Имеет ли это смысл? Если так, то как бы я это сделал?

Ответы [ 3 ]

11 голосов
/ 21 июля 2011

В этом случае используется MetadataTypeAttribute . Вы можете комбинировать его с частичными занятиями для достижения желаемых результатов

И, кстати, на вашем месте я бы провел больше исследований, выбирая между проектами Database First и Code First. Все дело не в экономии времени при создании сущностей, между этими двумя подходами гораздо больше различий. В целях экономии времени вы можете использовать EF Power Tools для генерации первых объектов кода из базы данных - просто.

2 голосов
/ 21 июля 2011

Лучше, чем автоматическая генерация ваших сущностей, я рекомендую вам использовать Code First или сопоставлять существующую базу данных с классами POCO (не генерируя сущности, просто создавая их вручную и сопоставляя их с существующей базой данных)

Скоттгу писал о , используя EF «Code First» с существующей базой данных .

1 голос
/ 27 декабря 2013

Проверьте это: в шаблоне вашей модели (файл с расширением model.tt) вы можете взломать этот шаблон для создания декораторов, в этом примере я добавляю декоратор [Обязательный] плюс сообщение об ошибке

var simpleProperties = typeMapper.GetSimpleProperties(entity);
if (simpleProperties.Any())
{
    foreach (var edmProperty in simpleProperties)
    {
        if(!edmProperty.Nullable)
        {#>
[Required(ErrorMessage="<#=String.Format("The field {0} is required",edmProperty.ToString())#>")]<#
        }#>
<#=codeStringGenerator.Property(edmProperty)#><#
    }
}

Таким образом, результат выглядит примерно так

    [Required(ErrorMessage="The field Id is required")]
    public long Id { get; set; }

PS: Вы также можете добавить using System.ComponentModel.DataAnnotations;, отредактировав шаблон.

Надеюсь, это поможет вам.

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