Dapper可以从DB表创建一个模型类吗?

时间:2017-08-22 20:58:20

标签: c# .net entity-framework dapper

我正在寻找EF的一些替代品,而Dapper似乎是一个非常好的选择。但我确实有一个问题。据我所知,作为Micro ORM的Dapper并不依赖或使用像EF那样的一类模型。话虽如此,如果我仍然想要一个镜像我的数据库表的buncha模型怎么办?我如何生成它们并使它们保持最新?或者,至少,我的一些表?

这是来自Dapper GutHub页面:

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类吗?

2 个答案:

答案 0 :(得分:9)

您需要自己创建Dog课程。 Dapper只是ADO.NET的一个包装器。

如果您想节省时间,您可以先从数据库或Entity Framework Power Tools中的EF代码生成POCO,然后在Dapper中使用它。

答案 1 :(得分:1)

为什么不使用EF代码首次迁移来维护/同步您的域模型和数据库。 Dapper将使用由EF代码首次迁移生成的这些实体