嗨,我想在下面加载一个像这样的属性值。
var date = db.GetTable<bbb>().Where(x => idList.Contains(x.MID))
.Select(x => x.ModifiedDate).FirstOrDefault;
var test = db.GetTable<nnn>().Where(x => xguy.Distinct().Contains(x.SID))
.LoadWith(x => x.Modified == lastPostDate);
异常:
LinqToDB。linqtodbexcexception: 'Expression '(x.Modified == value(vv.x+<>c__DisplayClass25_1). lastpostdate)'不是关联'
我该怎么做?
我使用了FirstOrDefault选项来获得一个值,但是我不理解表达式不是一个关联。
你对"LoadWith"方法是可疑的。
LoadWith是一个专门的函数,用于加载额外的表数据,这些数据被链接(例如通过外键)到当前表行。
根据你的用法,看起来你只是想设置另一个"Where"子句,所以不用
.LoadWith(x => x.Modified == lastPostDate);
你想要
.Where(x => x.Modified == lastPostDate);
或者,将其与之前的Where
语句组合以简化操作:
var test = db.GetTable<nnn>().Where(x => x.Modified == lastPostDate &&
xguy.Distinct().Contains(x.SID));
如果这不是你想要的,请告诉我。如果是这种情况,也许你有一个SQL语句或类似的,你现在正试图转换为c# LINQ,或者可以用简单的英语解释这个语句的目的是什么?