オブジェクトが別のオブジェクトのプロパティである場合、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; }
}
Contact のデータベースのテーブルには、この 3 つの列があります。
- ID
- 名前
- アドレス ID
したがって、connection.Insert<>関数を使用して連絡先を保存するときに、AddressをAddress.Idに変換し、Contact テーブルの AddressId 列にマップする必要があります。
Contact クラスに AddressId プロパティを追加すると、それが保存されることがわかっています。しかし、Dapper で使用するためだけに Contact クラスを汚染します。connection.Insertメソッドを使用せず、代わりに Sql Insert ステートメントを記述し、それをconnection.Queryで使用する方法もあります。ただし、Contact クラスを変更したらすぐに SQL ステートメントを変更することを忘れないでください。
だから私はこのようなものを探しています。
Map(m => m.Address).Columns("AddressId").UseValue(m.Id);