Attributesにマップしようとしましたが、なんらかの理由でこれが機能していないように見えて、なぜその理由が分かりません。私が試していることを実証するためのテストプロジェクトを立ち上げました。2つのエンティティを取得しました。}}私のデータベースには、Table1とTable2という2つのテーブルがあります。どちらのテーブルも、Table1にTable2Idという名前の列があり、Table1.Table2IdとTable2.Idの間に外部キーがあるという例外を除き、エンティティと同じ名前の列があります。2の両方を持っています。次は、dapperでクエリを実行し、Table1型のオブジェクトを返さなければなりません。これは機能しますが、プロパティTable1.IdとTable1.Table2.Idの両方が0(デフォルトの整数)のままです。私は列の属性がIdフィールドをマップすることを期待していますが、これははっきりしていません。result;}Entityの両方のIdプロパティフィールドの名前をTable1IdとTable2Idに変更することができましたが、代わりにTable1.Table1Idの代わりにTable1.Idのようなロジックコードが必要になりました。私は疑問に思っていました。Pedersonの最初の投稿にあるコードでは、FallBackTypeMapperクラスとColumnAttributeTypeMapperクラスを使用して、必要に応じて属性を使用することができます。必要なのは、必要なクラスをタイプ・マッピングに追加することだけです。ColumnAttributeTypeMapper<Table2>());しかし、多くのエンティティでは、このリストは長く成長します。すべてのクラスをリストに手動で追加する必要があります。これがReflectionを使ってより一般的に自動実行できるのかどうか疑問に思っていました。すべてのタイプを取得できるコードフラグメントが見つかりました。type;そして、すべての型をループすることで、私はこれを行うことができます。Merge受け入れられた回答ソリューションを完成させるために、見つけたコードを共有し、興味のある人とまとめたいと思います。}}最後に、マッピングを初期化するTypeMapper.cs。}}起動時に、TypeMapper.Initializeを呼び出す必要があります。}}Cornelis人気のある回答Cornelisの答えは正しいですが、私はこれに更新を加えたいと思っていました。SqlMapper.ItypeMap.FindExplicitConstructor()を実装する必要もあります。この変更がいつ行われたのかは分かりませんが、この問題を抱えて解決策のその部分が欠落している他の人にとってはこれはわかりません。System.ComponentModel.DataAnnotations.Schema名前空間内にあるColumnAttributeクラスを使用することもできます。