我有一个类,它的数据来自两个不同的来源 - 一个是数据库,另一个是 Web API。
数据库源为我提供了大部分数据,而 Web API 仅提供了一些属性。
我使用 Dapper 从数据库获取数据,作为IEnumerable<MyClass>
(其中来自 Web API 的属性均为空),
来自 Web API 的数据是IEnumerable<WebApiClass>
.
现在我需要将这两个结果连接到一个IEnuemrable<MyClass>
- 足够简单 -
var query = from c in dbResults
join w in webResults on c.Id equals w.Id
select new MyClass()
{
dbProp1 = c.dbProp1, dbProp2 = c.dbProp2, ...
waProp1 = w.Prop1, waProp2 = w.Prop2, ...
}
有没有办法在不选择的情况下做到这一点new MyClass()
,但只需使用已经存在的实例MyClass
from dbResults
?
我见过的所有连接查询都使用select new
- 这真的是唯一的选择吗?
使用方法语法 join 并显式打开范围resultSelector
。在其中根据需要编辑对象并返回它。
var result = dbResults.Join(webResults, db => db.Id, web => web.Id
(db, web) => {
db.SomePropFromWeb = web.SomeProp;
return db;
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)