在 VS2012(.NET 4.5 和实体框架 5 )
暴露继承关系时,导致编译时错误:
您不能对类型“MrTree.SubSubClass”的属性“InnerString”使用 Ignore 方法,因为此类型继承自映射此属性的类型“MrTree.BaseClass”。要从模型中排除此属性,请对基本类型使用 NotMappedAttribute 或 Ignore 方法。
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
MyDbcontext db = new MyDbcontext();
int i = db.SubSubClasses.Count();
}
}
public class BaseClass
{
[NotMapped]
public string InnerString { get; set; }
}
public class SubClass : BaseClass
{
}
public class SubSubClass : SubClass
{
}
public class MyDbcontext : DbContext
{
public DbSet<SubSubClass> SubSubClasses { get; set; }
public DbSet<SubClass> SubClasses { get; set; }
}
}
你能告诉我有什么问题吗?