私はEFのいくつかの代替案を検討していますが、Dapperはかなり良い選択肢のようです。しかし、私には1つの質問があります。 Micro ORMであるDapperは、EFが作成するようなモデルのクラスに依存したり、使用したりしないことを理解しています。そうは言っても、私がまだwantデータベーステーブルをミラーリングするbunchaモデルである場合はどうなりますか?それらをどのように生成して最新の状態に保つのですか?または、少なくとも、私のテーブルのいくつか?
これはDapperGutHubページからのものです:
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);
したがって、この例では、Dog
クラスは手動で作成されましたか?
Dog
クラスを自分で作成する必要があります。 Dapperは、ADO.NETの単なるラッパーです。
時間を節約したい場合は、最初にデータベースまたは Entity Framework Power Tools からEFコードからPOCOを生成し、それをDapperで使用できます。
ドメインモデルとデータベースを維持/同期するためにEFコードの最初の移行を利用しないのはなぜですか。 Dapperは、EFコードの最初の移行によって生成されたこれらのエンティティと連携します