2017-08-22 7 views
1

私はEFのいくつかの代替案を検討しています.Dapperはかなり良い選択肢のようです。しかし、私には1つの質問があります。私はDapperがMicro ORMであることは、EFのようにモデルのクラスに依存したり使用したりしないことを理解しています。それが言われている場合、私はまだが欲しい私のdbテーブルをミラーリングするバンチァモデルですか?どのように私はそれらを生成し、それらを最新の状態に保つでしょうか?または、少なくとも、私のテーブルのいくつか? Dogクラスは手動で作成された、このexampeでそうDapperはDBテーブルからモデルクラスを作成できますか?

public class Dog 
{ 
    public int? Age { get; set; } 
    public Guid Id { get; set; } 
    public string Name { get; set; } 
    public float? Weight { get; set; } 

    public int IgnoredProperty { get { return 1; } } 
}    

var guid = Guid.NewGuid(); 
var dog = connection.Query<Dog>("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid }); 

Assert.Equal(1,dog.Count()); 
Assert.Null(dog.First().Age); 
Assert.Equal(guid, dog.First().Id); 

この

は、DapperのGutHubページからでしょうか?

+0

「手動で作成した」とはどういう意味ですか?プログラマーがタイプしますか?コンストラクタが呼ばれましたか? – Amy

+0

https://stackoverflow.com/questions/11056141/how-to-generate-model-from-database-using-dapper – maccettura

+0

良い質問。私はプログラマがタイプすることを意味しましたが、私が本当に言っておくべきことは、「Dogクラスの作成は何とか自動化されましたか?もしそうなら、どうですか? –

答えて

5

あなた自身でDogクラスを作成する必要があります。 DapperはADO.NETのラッパーです。

時間を節約したい場合は、最初にEFコードからDatabaseまたはEntity Framework Power ToolsからPOCOを生成し、Dapperで使用することができます。

1

ドメインモデルとデータベースを維持/同期するためにEFコードの最初の移行を利用しない理由は何ですか? Dapperは、EFコードの最初の移行によって生成されたエンティティで動作します

関連する問題