微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 TPT EF 进行多级继承

如何解决使用 TPT EF 进行多级继承

我有以下几点:

[Table(nameof(GenTasks))]
public class GenTasks : EntityData
{
    public string TaskTitle;
    ...
}
    
[Table(nameof(GenProjectTasks))]
public class GenProjectTasks : GenTasks
{
    public string ProjectTitle;
    ...
}   


[Table(nameof(GenMkProjectTasks))]
public class GenMkProjectTasks : GenProjectTasks
{
    public string AdTitle;
    ...
}

每当我尝试查询特定的 GenMkProjectTasks 时,我都会收到此错误

- Error: All objects in the EntitySet 'GenTasks' must have unique primary keys. However,an instance of type 'GenMkProjectTasks' and an instance of type 'GenTasks' both have the same primary key value.

我不知道是我有设计错误还是有不同的方式来查询表 GenMkProjectTasks。

我已经试过了:

var mkTask = ctx.GenMkProjectTasks.Where(s => s.Id == task.Id).Single();
var mkTask = ctx.GenProjectTasks.OfType<GenMkProjectTasks>().Where(s => s.Id == task.Id).Single();
var mkTask = ctx.GenTasks.OfType<GenMkProjectTasks>().Where(s => s.Id == task.Id).Single();
var mkTask = ctx.GenTasks.OfType<GenProjectTasks>().OfType<GenMkProjectTasks>().Where(s => s.Id == task.Id).Single();

提前致谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。