解决poco与数据库表字段非一一对应的问题

       引用命名空间:

using System.ComponentModel.DataAnnotations.Schema;

和数据库非对应的字段名上添加特性:

        [NotMapped]
        public string IsEnabled { get; set; }



引用:

前几天使用code first碰到错误:列名 'Discriminator' 无效。这是一个很少见的错误,搜索了很久才发现是code first的poco实体对象的继承问题。

比如,我定义了一个实体类,对应数据库的Project表:

public class Project
{
int Id { get;set; }
string Name {get;set; }
}

后来又定义了一个子类ChildProject继承于它,但是子类不对应数据库任何表:

public class ChildProject : Project
{
}

于是每次EF的Context访问到Project或者ChildProject的时候,都出现了错误:列名 'Discriminator' 无效。

解决办法:子类并不映射到任何数据库,加上一个不映射的属性[NotMapped]就可以了。

[NotMapped]
public class ChildProject : Project
{
}

版权声明:本文为educast原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。