实体框架表拆分一对多

时间:2016-06-15 13:38:25

标签: c# asp.net-mvc entity-framework

是否有任何方法可以配置实体框架表拆分以提供一对多的关系。

目前我有以下实体

public class Record
{
    public int Id { get; set; }
    public string BoxNumber { get; set; }
    public string Description { get; set; }
}

这自然在我的数据库中创建了一个表。

使用我的DbContext我可以从我的数据库中检索记录列表。但是,所有记录都有相关的BoxNumber。请考虑以下记录列表: -

Id, BoxNumber, Description
1,  12,        Legal Documents
2,  13,        Insurance Documents
3,  12,        Other Legal Stuff
4,  14,        Plans

我想要做的是介绍一个新的实体,如下所示

public class Box
{
   public int Id { get; set; }
   public string BoxNumber { get; set; }
   public List<Record> Records { get; set; }
}

所以目前我可以做这样的事情,它会返回一个Record对象列表。

dbContext.Records.Where(r => r.BoxNumber == 12);

我还希望能够通过执行dbContext.Box.Find(12);来检索Box,我希望这会返回一个List,其中相关文档填充到Records属性中。

如果我告诉EF一个Box存在它会创建一个Box表 - 我不想要这个,我想将Box类映射到与Record类相同的表。

所以基本上我需要将两个不同的对象映射到数据库中的单个平面表。

这是否可以使用EF。

另一种方法是让我从EF返回文档列表,然后手动构建我的Box类,然后再将其返回到我的前端以供使用。

这次为了论证,我无法控制数据库结构。它可以重新完成,以便我有一个盒子和记录表都相关,但这似乎有点无意义,因为唯一有关Box的信息是BoxNumber。

0 个答案:

没有答案
相关问题