Asp.net mvc 2 如何在Microsoft MVC2中的自动生成实体上实现业务逻辑?

Asp.net mvc 2 如何在Microsoft MVC2中的自动生成实体上实现业务逻辑?,asp.net-mvc-2,Asp.net Mvc 2,我是MVC新手,我正试图弄清楚如何在MVC项目中自动生成的实体中实现业务逻辑 我知道如果我创建自己的模型类,我可以在字段中放置[Required]和其他属性,但在.edmx文件中似乎没有这样做的选项 这里有我遗漏的东西吗 我应该创建自己的类来使用实体并将逻辑放在其中吗? 看来应该有办法让我少做些工作 谢谢 这可以通过使用.NET中专门为此而实现的buddy类功能来实现。一旦您在.ebmx文件中创建了实体,您就可以创建分部类来伴随您的实体,这些实体在“伙伴类”中定义您的业务规则 [Metadata

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

我知道如果我创建自己的模型类,我可以在字段中放置
[Required]
和其他属性,但在.edmx文件中似乎没有这样做的选项

这里有我遗漏的东西吗

我应该创建自己的类来使用实体并将逻辑放在其中吗? 看来应该有办法让我少做些工作


谢谢

这可以通过使用.NET中专门为此而实现的buddy类功能来实现。一旦您在.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; }
    }
}
在上面的示例中,假设您已经在对象上下文中定义了一个“产品”类型,该类型具有“名称”、“价格”和“描述”属性。只要由引用的buddy类类型具有匹配的属性名称,则应用于buddy类中的属性的属性将应用于实现类型


注意:如果buddy类中有任何与实现类型不匹配的属性名称,则会出现运行时错误。您只需要在buddy类中为您感兴趣的应用业务规则的属性创建匹配的属性;所有属性都是可选的。

看这里:太好了,这正是我要找的。