我正在寻找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
类吗?
答案 0 :(得分:9)
您需要自己创建Dog
课程。 Dapper只是ADO.NET的一个包装器。
如果您想节省时间,您可以先从数据库或Entity Framework Power Tools中的EF代码生成POCO,然后在Dapper中使用它。
答案 1 :(得分:1)
为什么不使用EF代码首次迁移来维护/同步您的域模型和数据库。 Dapper将使用由EF代码首次迁移生成的这些实体