我是MVC的新手,我试图弄清楚如何在MVC项目中的自动生成的实体中实现业务逻辑。如何在Microsoft MVC2的自动生成实体上实现业务逻辑?
我知道,如果我创建自己的模型类,我可以将[Required]
和其他属性放在字段上,但似乎没有选项可以在.edmx文件中执行此操作。
有什么我在这里失踪?
我应该创建自己的类,使用实体并将逻辑放在那里? 似乎应该有办法让我少做点工作。
谢谢!
我是MVC的新手,我试图弄清楚如何在MVC项目中的自动生成的实体中实现业务逻辑。如何在Microsoft MVC2的自动生成实体上实现业务逻辑?
我知道,如果我创建自己的模型类,我可以将[Required]
和其他属性放在字段上,但似乎没有选项可以在.edmx文件中执行此操作。
有什么我在这里失踪?
我应该创建自己的类,使用实体并将逻辑放在那里? 似乎应该有办法让我少做点工作。
谢谢!
这可以通过在.NET中使用专门为此目的而实现的buddy-class功能来实现。一旦在.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; }
}
}
在上面的例子中,假设你已经在其中具有属性“名称”,“价格”和“说明”你的对象上下文定义的“品”字型。只要MetadataTypeAttribute引用的好友类类型具有匹配的属性名称,应用于好友类中属性的属性将应用于实现类型。
注意:如果buddy类中有任何属性名称与实现类型不匹配,您将收到运行时错误。您只需在伙伴类中为您有兴趣应用业务规则的属性创建匹配属性;所有属性都是可选的。
非常好,这是正是我所期待的。 – 2011-01-28 17:30:30
看这里:http://stackoverflow.com/questions/4619609/what-is-the-best-way-to-add-attributes-to-auto-generated-entities-using-vs2010 – Lazarus 2011-01-28 16:47:02