我有一个项目,我需要从一个实体加载结果 选择结果,而不是用这些结果加载另外2个实体并从中选择数据,稍后将返回。
是否可以从3个存储库构建LINQ查询 ? 请给我一些代码示例或指向我链接...我找不到如何
这只是一个我想问的可能的涂鸦:
ARepository rep = new AReository();
BRepository rep = new BReository();
var Q1= rep.GetAllView1()
.Select(o=>new {
X=o.data.aaa,
Y=o.data.bbb,
....
var Q2= rep.GetAllView2()
.Where(x => x.bata.ss == X
var Q3= rep.GetAllView3()
.Where(x => x.cata.ff== Y
答案 0 :(得分:1)
我认为你需要使用导航属性以任何方式有效。您展示的内容是可能的,但是当您不需要它们时,您很可能最终得到所有实体。从您的示例看,您有三个实体:
最简单的方法是在数据库中定义这些键,但您可以在实体框架设计器中定义它们。一旦你建立了关系模型,它就会让事情变得非常简单......
因此,View1权利可能如下所示:
public class View1
{
public ICollection<View2> View2s { get; set; }
public ICollection<View3> View3s { get; set; }
}
一旦有了这样的实体,下面的代码就可以了:
rep
.GetAllView1()
.Where(o => o.View2s != null &&
o.View2s.Count() > 0 &&
o.View3s != null &&
o.View3s.Count() > 0)
到目前为止,您有一组View1对象,它们都具有2个属性及其关联的View2和View3实体。