私は Dapper.Net を使い始めて、今のところとても気に入っていますが、1 つの問題に遭遇しました。
次のような POCO クラスがあるとします。
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string FullName { get { return FirstName + " " + LastName; } }
}
ここで、Dapper.Net と Dapper.Net 拡張機能を使用して、次のようにして、そのデータ型のすべてのインスタンスを DB から単純にロードします。
string connectionString = CloudConfigurationManager.GetSetting("DBConnection");
using (SqlConnection cn = new SqlConnection(connectionString))
{
cn.Open();
IEnumerable<Types.Person> entities = cn.GetList<Types.Person>();
var forceMe = entities.ToList();
}
これはLinqセットアップでは正常に機能しますが、評価を強制する.ToList()のある行に到達すると、FullNameで「無効な列名」が発生します。NotMapped の Entity Framework DataAnnotations を尊重する可能性があると考えて、NotMapped 属性を追加してみました (プロジェクトに EF 5 を追加した後)。これはうまくいきませんでした。
問題は、列が DB から期待されないことを Dapper.Net にどのように伝えるかということです。これは、モデル POCO で表示されるすべての DB 列をマップしようとしている拡張機能の問題ですか? SQL の記述に戻り、必要な列のみを明示的に要求する必要がありますか、または列で NotMapped と同等のものを取得する方法はありますか?