[英]C# entity framework when join two table
我有一些表,使用实体框架
用户表
书桌
自己的表
现在我可以使用:
uw.ownRepository.GetData().where(v=>v.userid=1).select(o=>o.Book)
获取我拥有的所有书。但是,如果我想获取所有书,请注意用户是否拥有它
我有一些解决方案
1。
选择所有书籍,然后为每本书选择一次
愚蠢的解决方案= =“
2。
var s = from book in uw.bookRepository.GetData()
join own in uw.ownRepository.GetData() on book.Id equals like.Id into ps
from o in ps.DefaultIfEmpty()
select new {bookName =book.name,IsOwn =o==null};
只是一些伪代码。
我尝试了并且工作正常。
但我想知道是否还有另一个更好的解决方案
如果我想选择一个强类型
select new Book{bookName =book.name,bookType=book.bookType, IsOwn =o==null};
在这种情况下,如果bookTable中有很多字段,则必须分配每个字段。
有人知道吗?
这真的很简单。 您需要所有书籍,因此要在书籍实体上启动Lambda Express。 在这里的示例中,我选择了一个匿名类型。 但是,您可以选择预定义的类型。
Books.GetData().Select(b=> new {name = b.BookName , DoIOwnThisBook = OwnTable.GetData().Where()})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.