クエリからリストに追加情報を追加するためのより効率的な方法を見つけようとしています。たとえば、ObjectIDとStringAが設定されたオブジェクトのリストがある場合、ObjectIDに基づいてデータベースにクエリを実行し、StringBとStringCを取得します。
public class SomeObject {
public int ObjectID { get; set; }
public string StringA { get; set; }
public string StringB { get; set; }
public string StringC { get; set; }
}
public void AddInformationToSomeObjects(List<SomeObject> someObjects)
{
var listOfIDs = someObjects.Select(so => so.ObjectID).ToList();
var informationToAdd = db.Table.Where(t => listOfIDs.Contains(t.ObjectID)).Select(t => new { ObjectID = t.ObjectID, StringB = t.StringB, StringC = t.StringC }).ToList();
foreach (var someObject in someObjects)
{
var information = informationToAdd.Where(i => i.ObjectID == someObject.ObjectID).FirstOrDefault();
someObject.StringB = information.StringB;
someObject.StringC = information.StringC;
}
}
クエリと割り当てを1つのステートメントに結合する方法はありますか?