如何在不选择新实例的情况下将一个查询的结果加入到另一个查询的结果中?
我有一个类,它的数据来自两个不同的来源 – 一个是数据库,另一个是Web API。
数据库源为我提供了大部分数据,而Web API只提供了一些属性。
我使用Dapper从数据库获取数据,作为IEnumerable
(其中来自Web API的属性都为空),来自Web API的数据是IEnumerable
。
现在我需要将这两个结果连接到一个IEnuemrable
– 足够简单 –
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()
情况下做到这一点,而只是使用dbResults
已有的MyClass
实例?
我见过的所有连接查询都使用select new
– 这真的是唯一的选择吗?
使用方法语法连接并显式打开resultSelector
的范围。 在其中编辑您想要的对象并将其返回。
var result = dbResults.Join(webResults, db => db.Id, web => web.Id (db, web) => { db.SomePropFromWeb = web.SomeProp; return db; });