如何将AutoMapper与Entity Framework Database First方法一起使用

时间:2014-10-24 05:23:30

标签: c# asp.net-mvc entity-framework automapper ef-database-first

我正在使用Db First Approach开发MVC 5,实体框架。每当我使用

public class Customer
{
    [Required]
    public virtual string CustomerID { get; set; }

    [Required]
    [StringLength(15)]
    public virtual string CompanyName { get; set; }

    public virtual string Address { get; set; }

    public virtual string City { get; set; }

    public virtual string PostalCode { get; set; }

    [Country(AllowCountry="USA")]
    public virtual string Country { get; set; }

    [Phone]
    public virtual string Phone { get; set; }
}

用于在Entity Framework中生成类的验证,如果我更新我的.edmx文件,我丢失了我写的所有代码。有人建议我使用Auto-mapper。我试着找一些基本的例子,但我没有得到。引导我。如何开始和从哪里来?我是MVC,Entity Framework的新手。

1 个答案:

答案 0 :(得分:1)

即使您更新模型,还有另一种方法可以保留验证属性代码。 在模型文件夹中,添加名为 Metadata.cs 的类(包含所有验证属性的类)。



using System;
using System.ComponentModel.DataAnnotations;

namespace YourProjectName.Models
{
    public class CustomerMetadata
    {
        [Required]
        public virtual int CustomerId { get; set; }

        [Required]
        [StringLength(15)]
        public virtual string CompanyName { get; set; }

        
    }
}




接下来,您必须将模型类与元数据类相关联。为此,在模型文件夹中,添加名为 PartialClasses.cs 的类。



using System;
using System.ComponentModel.DataAnnotations;

namespace YourProjectName.Models
{
    [MetadataType(typeof(CustomerMetadata))]
    public partial class Customer
    {
    }
}




Source