2011-01-28 71 views
0

我是MVC的新手,我试图弄清楚如何在MVC项目中的自动生成的实体中实现业务逻辑。如何在Microsoft MVC2的自动生成实体上实现业务逻辑?

我知道,如果我创建自己的模型类,我可以将[Required]和其他属性放在字段上,但似乎没有选项可以在.edmx文件中执行此操作。

有什么我在这里失踪?

我应该创建自己的类,使用实体并将逻辑放在那里? 似乎应该有办法让我少做点工作。

谢谢!

+0

看这里: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

回答

2

这可以通过在.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类中有任何属性名称与实现类型不匹配,您将收到运行时错误。您只需在伙伴类中为您有兴趣应用业务规则的属性创建匹配属性;所有属性都是可选的。

+0

非常好,这是正是我所期待的。 – 2011-01-28 17:30:30

相关问题