实体框架和MVC

时间:2011-03-11 23:32:13

标签: asp.net-mvc entity-framework

  

可能重复:
  How to add validation to my POCO(template) classes

大家好,

我正在使用EF4进行数据建模,使用MVC进行演示。 我已经定义了我的实体,我想将它们与Html.LabelFor(..)一起使用,但最后一个方法似乎不起作用。 我在哪里可以定义我的数据注释?请记住,我的所有实体都是EF生成的。

感谢。

2 个答案:

答案 0 :(得分:3)

您最好的选择是使用视图模型模式并将实体映射到视图模型。总之,这涉及将数据/域模型中的数据映射到与您的视图更兼容的展平表示,并且不会将您的逻辑问题与您的演示问题混淆。您的数据注释应该放在您的视图模型上。

ASP.NET MVC中的视图模型的文章

这些应该可以帮助您了解视图模型如何改进您的应用程序以及如何实现它们。

我还建议查看 AutoMapper ,这是一个出色的开源工具,可以自动将您的域模型(在本例中为实体框架类)映射到您的视图模型。

答案 1 :(得分:2)

定义您的注释:

[MetadataType(typeof(MetaDataBusiness))]
public partial class Business //Partial class for Entity
{
     //Don't need anything here for annotations to work
}

public class MetaDataBusiness
{
    [DisplayName("Business Id")]
    [Required(ErrorMessage = "Business Id is required")]
    [Range(0, Int32.MaxValue, ErrorMessage = "Business Id cannot be less than 0")]
    public int BusinessId { get; set; }
}