2

「Id」という名前の列を主キーに設定する規則を作成したいと思います。ドキュメンテーションを見てきましたが、これまでのところ、次のようにクラスごとに手動で行うことしかできませんでした。ドメル:

public class ProductMap : DommelEntityMap<TEntity>
{
    public ProductMap()
    {
        Map(p => p.Id).IsKey();
    }
}

私はもっ​​と好きです:

    public ConventionMap()
    {
        Properties<int>().Where(p=>p.Name.ToLower()=="id").isKey();
    }

それはdommelまたはdapperの拡張機能またはその他の可能性があります。私はこの実装を流暢にするだけです。

何かアドバイス?ありがとう!

4

1 に答える 1

2

Dommelを使用すると、カスタム を作成できますIKeyPropertyResolver

実装は次のようになります。

public class CustomKeyPropertyResolver : DommelMapper.IKeyPropertyResolver
{
    public PropertyInfo ResolveKeyProperty(Type type)
    {
        return type.GetProperties().Single(p => p.Name.ToLower() == "id");
    }
}

次のコード行を使用して、アプリケーションの起動時に登録する必要があります。

DommelMapper.SetKeyPropertyResolver(new CustomKeyPropertyResolver());

これには Dapper.FluentMap (または Dapper.FluentMap.Dommel) は必要ありません。こちらもご覧ください:ドキュメント.

于 2015-01-14T10:51:49.823 に答える