当对象是另一个对象的属性时,有没有办法使用 dapperexstension 映射将对象映射到值(id)。这是一个例子。
public class Contact
{
public int Id { get; set; }
public string Name { get; set; }
public Address Address { get; set; }
}
public class Address
{
public int Id { get; set; }
public string Street { get; set; }
}
联系人数据库中的表将有这 3 列
- ID
- 姓名
- 地址 ID
因此,当我使用connection.Insert<>函数保存联系人时,我希望将Address转换为Address.Id并映射到 Contact 表中的 AddressId 列。
我知道我可以在我的 Contact 类中添加一个 AddressId 属性,然后它将被保存。但是后来我污染了我的 Contact 类,只是为了让 Dapper 使用它。还有一种方法是不使用connection.Insert方法,而是编写一个 Sql Insert 语句并在connection.Query中使用它。但是我必须记住在更改 Contact 类后立即更改 SQL 语句。
所以我正在寻找这样的东西。
Map(m => m.Address).Columns("AddressId").UseValue(m.Id);