Этого можно достичь, используя функциональность класса приятелей в .NET, реализованную специально по этой причине. После того как вы создали свои сущности в своем файле .ebmx, вы можете создать частичные классы для сопровождения ваших сущностей, которые определяют ваши бизнес-правила в «классе приятеля».
[MetadataType(typeof(ProductMetadata))]
public partial class Product {
internal sealed class ProductMetadata {
[DisplayName("Name")]
[Required]
public string Name { get; set; }
[DispayName("Price")]
[Required, Range(1,10000)]
public decimal Price { get; set; }
[DisplayName("Description")]
public string Description { get; set; }
}
}
В приведенном выше примере предположим, что у вас уже есть тип «Product», определенный в контексте вашего объекта, который имеет свойства «Name», «Price» и «Description». Поскольку тип класса собеседника, на который ссылается MetadataTypeAttribute , имеет совпадающие имена свойств, атрибуты, примененные к свойствам в классе собеседника, будут применяться к типу реализации.
Примечание: если в классе собеседника есть имена свойств, которые не соответствуют типу реализации, вы получите ошибку времени выполнения. Вам нужно только создать соответствующие свойства в классе собеседника для свойств, к которым вы хотите применить бизнес-правила; все свойства являются необязательными.