我正在用dapper实现所有数据访问。
我的第一个想法是使用dapper实现存储库模式。
发件人:http://www.bradoncode.com/blog/2012/12/creating-data-repository-using-dapper.html
然后我将linq表达式添加到dapper sqlbuilder中以最小化sql,如示例(动态查询)中所示。所以我可以写一些
sqlbuilder.Where(c=>c.Id == 1) or c.Id = myVar
现在我问自己,实现类似于dbcontext的和dbset并使用linq表达式是否是个好主意。
问题不在于实现一个完整的dbset或dbcontext。但只是一些看起来很复杂的东西。
只需一个初始化连接的dbcontext和使用dapper查询表的多个dbset,以及使用dapper sqlbuilder基于给定链接表达式“生成”sql的iqueryable实现。
在阅读了一些代码并与实体框架进行比较之后,我认为这是浪费时间,因为实体框架已经做到了。
但是使用dapper,您可以控制生成的sql,并且它总是使用相同的模板。
在开始(浪费时间)之前,我想知道这是不是一个好主意。
编辑:很多评论说sqlbuider不是一件好事,那么为什么它在dapper项目中可用呢?
最佳答案
就我个人而言,这是dapper图书馆试图提供的核心之外的东西。这个想法是有价值的,但我担心,当你这么做的时候,你基本上只是重新实现了linq to sql。有一种更简单的方法:只需使用linq to sql。DPAPER通常非常高兴地填充L2S模型——这基本上是我们(DePror作者)如何使用它(并继续使用它)来对抗我们先前存在的L2S代码库。它也将类似于ef等。
不过,如果你真的想把工作做完,我相信你可以在dapper上写一个库来完成这项工作。似乎已经做了很多工作去做已经存在的事情。
关于c# - Dapper中的DbContext,DbSet等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29433851/