以下のコードでは、私はEmployeeオブジェクトのコレクションを持っています。従業員がInOrgであるかどうかを確認する必要があります。そのためには、InOrgCatalogテーブルとの左結合を行い、匿名オブジェクトを返します。私はすでにInOrgプロパティ をEmployeeオブジェクトに持っているので、匿名オブジェクトを返す代わりに、InOrgプロパティが更新されたEmployeeオブジェクトを返したいと思います。私はそれを達成するためにクエリで何をしなければならないのですか?LINQ左外部結合の実行中に選択したオブジェクトを更新する
List<Employee> employees = new List<Employee>
{
new Employee { EmployeeId = 1, EmployeeName = "Aaron" , Alias = "AWERAS", InOrg = false},
new Employee { EmployeeId = 2, EmployeeName = "asdfsdf" , Alias = "HJKHJK", InOrg = false},
new Employee { EmployeeId = 3, EmployeeName = "qwerwe" , Alias = "NMUIYUI", InOrg = false},
new Employee { EmployeeId = 4, EmployeeName = "zcvcx" , Alias = "PIOUKJ", InOrg = false},
};
using (var context = new MyDbContext())
{
var result = (from employee in employees
join catalog in context.InOrgCatalogs on new { Alias = employee.Alias, Active = true } equals
new { Alias = catalog.Alias, Active = catalog.Active }
into ps
from p in ps.DefaultIfEmpty()
select new { Employee = employee , InOrg = !(p == null)}).ToList();
}
LINQの_querying_、ない_updating_ためのものです。アイテムをそのまま取得してループスルーするか、 'Employee'オブジェクトを更新するか、_new_' Employee'オブジェクトに投影して、プロパティ値のすべてをコピーすることができます。 –
私はdbの値を照会しようとしていて、dbの値を更新しようとしていません。新しい従業員オブジェクトを再作成せずに解決策が役立つでしょう。ありがとうございました! –