【发布时间】:2014-09-18 20:03:27
【问题描述】:
我正在尝试使用 Dapper 执行以下操作(但失败了)。
我的 POCO(所有代码均已简化)是:
public class Company
{
public int CompanyId { get; private set; }
public string CompanyName { get; private set; }
public Person CompanyAddress { get; private set; }
public Person Administrator { get; private set; }
}
public class Person
{
public int PersonId { get; private set; }
public string FirstName { get; private set; }
public string LastName { get; private set; }
}
在数据库中,Company 表有一个用于 CompanyAddress 和 Administrator 的 FK,它映射到 Person 表中的 PersonID PK。基于this 和this 我认为以下是我想要这样做的方式:
public static Company Select(IDbConnection connection, int id)
{
Trap.trap();
return connection.Query<Company, Person, Person, Company>("select * from Company left join Person address on Company.CompanyAddress = address.PersonId left join Person admin on Company.Administrator = admin.PersonId where Company.CompanyId = @Id",
(cmpy, addr, admin) => new { PersonId = id }).FirstOrDefault();
}
但这给了我一个关于“new { PersonId = id }”的编译错误。我哪里错了?
【问题讨论】: