У меня есть структура класса, которая выглядит следующим образом:
class Person
{
public virtual string FirstName {get;set;}
public virtual string LastName {get;set;}
public virtual Address HomeAddress {get;set;}
}
class Address
{
public virtual string Street {get;set;}
public virtual string City {get;set;}
public virtual string State {get;set;}
public virtual string ZipCode {get;set;}
public virtual string Country {get;set;}
}
Тогда у меня есть идея о человеке с Обязательным адресом и о человеке, который использует RequiredAddress ... поэтому у меня есть новый "Обязательный""адрес выглядит так:
class RequiredAddress
: Address
{
[Required]
public override string Street {...}
[Required]
public override string City {...}
[Required]
public override string State {...}
[Required]
public override string ZipCode {...}
[Required]
public override string Country {...}
}
, но когда я только что обновил экземпляр RequiredAddress в поле Address моего адреса RequiredPerson, MVC не смог обнаружить теги [Required], и я завелсянеобходимость сделать это:
class PersonRequiredAddress
: Person
{
public new RequiredAddress Address {get;set;}
}
Теперь, потому что мы должны были сделать это, мы оказались вынуждены повторно выполнить наш DAL для обработки различий в объектах ... который кажется ужасным запахом кода длямне.Кто-нибудь может предложить лучшее решение этой проблемы, с которой мы сталкиваемся?