C# linq lambda 连接和选择语法

标签 c# linq join lambda

我正在寻找 Msql 查询的对应物:

SELECT per.*,add.addressDescription FROM Persons per 
       JOIN Address add ON per.AddressId = add.AddressId

我有这个问题:

    var query = persons.JOIN(address,per = person.addressId,add = addressId
    (per,add) => 
    new Persons{
                addressDescription = add.addressDescription,
                PersonId = per.PersonId,
                PersonFirstName = per.PersonFirstName
                PersonLastName = per.PersonLastName})

有没有办法在不单独分配 Persons 的其他属性的情况下填充 Persons.addressDescription?想象一下,如果 Persons 还有 10 个属性。

我想避免使用像这样的循环:

foreach(Person person in PersonList)
{
  foreach(Address address in AddressList)
  {
     if(person.addressId == address.addressId){
        person.addressDescription = address.addressDescription
     }
   }
}

最佳答案

var query = persons.join(address,
    per = person.addressId,
    add = addressId
    (per,add) => 
    {
        per.addressDescription = add.addressDescription;
        return per;
    });

关于C# linq lambda 连接和选择语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38300788/

相关文章:

c# 试图反转列表

c# - LINQ 不会用 float 对组求和吗?属性(property)

c# - 在 C# 中函数式遍历树

.net - LINQ,无法加入字符串

sql - 在内连接条件之前过滤表

c# - 为什么我的 View 没有在 _Layout.cshtml 中呈现

c# - 使用 C#/WPF 显示缩略图网格

c# - 从动态列表中获取唯一的值列表

Mysql select on indexed column llowed on large tables

c# - 如何从 Entity Framework DbContext 收集当前的 SQL Server session ID?