实体框架和LINQ,其中包含定义嵌套表的视图

时间:2013-11-26 00:14:59

标签: asp.net-mvc linq entity-framework

我试图获得一些视图来形成嵌套表格EF 6与Dbsets,数据库中的视图没有FK关系,并且不能轻易更改。如何使实体框架/ LINQ或模型具有和加载嵌套表。

这些类对应于视图。

public partial class Product
{
public System.Guid UniqueID { get; set; }
public string Product { get; set; }
public string Licensee { get; set; }
public string Supplier { get; set; }
public int SeatCount { get; set; }
public System.DateTime ExpiryDate { get; set; }
public System.DateTime IssueDate { get; set; }
// would like IQueryable <Component> components here I can map to a MultiSelectList
}
public Partial class Component
{
public System.Guid UniqueID { get; set; }
public System.Guid ProductID { get; set; }
public string Description;
}

在使用中,DbSet产品可以作为整个列表获得,也可以单独提供给单个供应商,然后根据产品和日期过滤分页和搜索。

如何将组件集合到产品中?我一直在阅读关于建模师和EF的文章,但它不是wuite makin意义。 EF似乎不喜欢我在表之间添加关系,可能是因为它们是视图?

2 个答案:

答案 0 :(得分:0)

这将是一种效率低下的方法,但如果您无法在实体之间获取外键,则可以使用LINQ join和分组。

var query = from prod in Products
            join comp in Components on prod.UniqueID equals comp.ProductID into compGroup
            select new {
                Product= prod,
                Components = compGroup  //This will be an IEnumerable<Component>
            };

答案 1 :(得分:0)

编辑edmx文件以更改商店:Type =“Viewss”来存储:Type =“Tables”,然后可以添加关联并生成正确的对象。