我有两个对象A&B进行讨论.我可以通过公共关系或外键加入这些对象(表).我使用linq来做这个连接,我只想在结果集中返回ObjectA; 但是,我想在连接期间用ObjectB的数据更新ObejctA的属性,这样我从LINQ查询中获取的ObjectAs与它们在所选存储介质中的原始状态"略有"不同.
这是我的查询,你可以看到我只想做像objectA.SomeProperty = objectB.AValueIWantBadly这样的事情.
我知道我可以在我的选择中创建一个新的并启动新的OBjectAs,但我想尽可能避免这种情况并简单地更新一个字段.
return from objectA in GetObjectAs()
join objectB in GetObjectBs()
on objectA.Id equals objectB.AId
// update object A with object B data before selecting it
select objectA;
Run Code Online (Sandbox Code Playgroud)
Mar*_*ner 25
为您的ClassA添加更新方法
class ClassA {
public ClassA UpdateWithB(ClassB objectB) {
// Do the update
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
然后用
return from objectA in GetObjectAs()
join objectB in GetObjectBs()
on objectA.Id equals objectB.AId
// update object A with object B data before selecting it
select objectA.UpdateWithB(objectB);
Run Code Online (Sandbox Code Playgroud)
编辑:
或使用本地lambda函数,如:
Func<ClassA, ClassB, ClassA> f = ((a,b)=> { a.DoSomethingWithB(b); return a;});
return from objectA in GetObjectAs()
join objectB in GetObjectBs()
on objectA.Id equals objectB.AId
select f(objectA , objectA );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12559 次 |
| 最近记录: |