EF4 仅代码映射继承
我有以下模型,我希望 ShiftRequest 和 MissionRequest 在数据库中有一个表。
public class RequestBase
{
public int Id { get; set; }
public DateTime? RequestDate { get; set; }
public int UserId { get; set; }
public virtual ICollection<Notification> Notifications { get; set; }
}
public class ShiftRequest : RequestBase
{
public virtual Column Column { get; set; }
}
public class MissionRequest : RequestBase
{
public virtual Mission Mission { get; set; }
}
我尝试在 override void OnModelCreating(ModelBuilder modelBuilder)
方法中执行此操作,但只创建了一个 RequestBases
表:
modelBuilder.Entity<ShiftRequest>().MapSingleType().ToTable("dbo.ShiftRequests");
modelBuilder.Entity<MissionRequest>().MapSingleType().ToTable("dbo.MissionRequest");
我做错了什么?
编辑
Column
和 Mission
也是我的模型中的实体,可以接受吗?
I've got the following model and I want ShiftRequest
and MissionRequest
to have a single table in the DB.
public class RequestBase
{
public int Id { get; set; }
public DateTime? RequestDate { get; set; }
public int UserId { get; set; }
public virtual ICollection<Notification> Notifications { get; set; }
}
public class ShiftRequest : RequestBase
{
public virtual Column Column { get; set; }
}
public class MissionRequest : RequestBase
{
public virtual Mission Mission { get; set; }
}
I've tried to do it in the override void OnModelCreating(ModelBuilder modelBuilder)
method but only one RequestBases
table is created:
modelBuilder.Entity<ShiftRequest>().MapSingleType().ToTable("dbo.ShiftRequests");
modelBuilder.Entity<MissionRequest>().MapSingleType().ToTable("dbo.MissionRequest");
What am I doing wrong?
EDIT
Column
and Mission
are also entities in my model, is that acceptable?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
检查此 文章。如果任务和列是复杂类型,您还可以在那里找到如何映射它们。通常,您必须使用 MapHiearchy 和 Case 方法而不是 MapSingleType。
编辑:
这是示例:
编辑2:
我更新了示例。现在任务是实体而不是复杂类型。
Check the section about TPH in this article. If Mission and Column are complex types you will also find there how to map them. Generally you have to use MapHiearchy and Case methods instead of MapSingleType.
Edit:
Here is the example:
Edit 2:
I updated example. Now Mission is entity instead of complex type.