У меня есть следующие модели Person в моем слое UI MVC:Как карта DTO от EF к модели
public class Person
{
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
public int PersonTypeID { get; set; }
[Required]
public string Phone { get; set; }
[Required]
public string Email { get; set; }
}
В моем слое данных, у меня есть класс с теми же именами свойств, но и другие метаданные (естественно,):
public partial class Person : EntityObject { ... }
Как вернуть данные из моего уровня данных в моем слое MVC UI, не имея данных слоя знать о слое MVC UI?
Примечание: У меня также есть простой IPerson-интерфейс с теми же именами свойств.
Единственная проблема, которую я вижу с этим, если вы когда-нибудь понадобится, чтобы переключить ваша реализация данных (например, от EF до Linq to SQL). Теперь ваш слой MVC хочет объект Person, который связан исключительно с EF. –
@BrianDavidBerman, ну нет чудесного решения. Лучше всего было бы иметь структуру ORM, которая не является навязчивой, и позволяет вам сопоставлять ваши фактические объекты домена, чтобы вы не получали какие-то автогенерированные и загрязненные классы. Насколько я знаю, это возможно с EF. Лучшее решение - иметь бизнес-объекты с чистым доменом, которые не являются специфическими для некоторых систем доступа к данным, но специфичны для бизнес-требований. –