我试图获得一些视图来形成嵌套表格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似乎不喜欢我在表之间添加关系,可能是因为它们是视图?
答案 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”,然后可以添加关联并生成正确的对象。