C# 如何在不选择新实例的情况下将一个查询的结果连接到另一个查询的结果?
我有一个类,它的数据来自两个不同的来源——一个是数据库,另一个是web API。C# 如何在不选择新实例的情况下将一个查询的结果连接到另一个查询的结果?,c#,linq,C#,Linq,我有一个类,它的数据来自两个不同的来源——一个是数据库,另一个是web API。 数据库源为我提供了大部分数据,web API只提供了一些属性。 我使用Dapper从数据库中获取数据,作为IEnumerable(其中来自web API的属性都是null), 来自web API的数据是一个IEnumerable 现在我需要将这两个结果合并到一个IEnuemrable-足够简单- var query = from c in dbResults join w in webRes
数据库源为我提供了大部分数据,web API只提供了一些属性。
我使用Dapper从数据库中获取数据,作为
IEnumerable
(其中来自web API的属性都是null),
来自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
实例即可
我看到的所有连接查询都使用了
selectnew
——这真的是唯一的选项吗?使用方法语法连接并显式打开结果选择器的范围。在其中,根据需要编辑对象并将其返回
var result = dbResults.Join(webResults, db => db.Id, web => web.Id
(db, web) => {
db.SomePropFromWeb = web.SomeProp;
return db;
});
我认为你的问题可以用不同的措辞,因为你真正想要的是选择c
,并根据w
——它有@MarkC更新属性。谢谢,我确实尝试过重新措辞我的搜索,但那一次没有出现。没问题。谢谢!明天我会检查一下你的答案和你的答案,如果我能做到的话,我会接受的。