让实体框架忽略派生类型

bit*_*ler 6 inheritance code-first entity-framework-4.1

在我目前的项目中,我正在使用代码第一种方法.

我有一个类型叫做Task模型的一部分.我也BackgroundTask衍生自TaskUserAccountTask衍生自BackgroundTask.

当我只是尝试创建一个类型的对象Task并将其添加到我的任务存储库时,我会在DbUpdateException尝试将更改保存到数据库时立即获得.它的内部异常表明:

"无效列名'UserAccount_UserId'.\ r \n无效列名'UserAccount_Lastname'.\ r \n无效列名'UserAccount_Firstname'.\ r \n无效列名'UserAccount_Fullname'.\ r \n无效列名'UserAccount_Password'.\ r \n \n无效的列名称'UserAccount_Title'[...]"

UserAccount是另一种类型和的属性UserAccountTask(UserId,Lastname等等是属性UserAccount).

我希望我对这个问题的描述不要过于混乱: - /我只是想让EF忽略Task其他类型的基类,因为恕我直言当时并不重要.

凯文,提前谢谢

Lad*_*nka 17

尝试在派生的上下文中使用它:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
    modelBuilder.Ignore<UserAccountTask>();
    modelBuilder.Ignore<BackgroundTask>();
}
Run Code Online (Sandbox Code Playgroud)