我需要一些帮助。 我目前有3张桌子: House(id,name,isDisplayed) 房间(id,name,isDisplayed) 图片(身份证,姓名)
房子可以有O .. *房间和房间可以有0 .. *图片
如此简单的情况,我想要所有带房间和图片的房子
var query=db.Houses.Include(h=>h.Rooms).Include(h=>h.Rooms.Select(r=>r.Pictures));
这样工作正常,所以确定:)
现在,让我们说我希望所有House和他们的房间(包括房间的照片)都被设置为真,而且房间没有房间
使用SQL,这很容易,但我将Linq用于实体,我显然不想进行预测。
你认为有办法吗?
由于
答案 0 :(得分:0)
简答:您需要投射到新的类/匿名类型。
实体是数据库中数据的表示,这允许实体框架跟踪对实体的更改,并在保存时将这些修改推送回数据库。因此,所有返回的实体都需要不加修改。否则,当您去保存时,实体框架将进行您在select
中指定的所有数据库修改,在您的情况下,它将使用isDisplayed = false
删除数据库中的所有记录
答案 1 :(得分:0)
db.Houses.Include(X => x.Rooms.Select(E => e.Pictures)) .Where(x =>!x.Rooms.Any()|| x.Rooms.Any(e => e.Pictures.Any(v => v.IsDisplayed)) .ToList()