我正在为WinForms构建一个通用的存储库,有点像这样的小应用程序:
7686745377
我知道许多人建议不要使用存储库模式,但在这种情况下会节省大量代码,因为所有POCO将非常相似并使用接口中声明的所有方法。
这将使用ServiceStack.OrmLite实现。
我不想使用CCDBA.O_PAT.ORDER_DDT
来获取连接字符串。实现这一目标的好方法是什么?我想过使用02/20/14 09:58
类来初始化静态连接字符串,但我不知道如何实现它。
有什么建议吗?
答案 0 :(得分:0)
一个BaseRepository
类应该是一个抽象类,它抽象地实现了IRepostiory中的方法:
public class BaseRepository<T> : IRespository<T> where T : class
{
protected readonly string ConnectionString = "your connection string here"; /*could event be static?*/
public abstract IEnumberable<T> GetAll();
/*....*/
}
我没有使用过OrmLite,但看起来你可以实现BaseRepository
类中的大部分方法。任何体面的DI容器都可以使用它,而不必为每个实体都有一个单独的存储库类。
但是,由于存储库模式通常与工作单元模式一起使用,您可能需要考虑这一切是如何进行通信的。
最后一点说明:我警告GetAll
为IEnumerable
- 除了可能查找表只会有少量行。一旦你开始拥有任何数据量,你就需要以块的形式检索它 - 一次加载数十万(或更多?)记录将会非常缓慢。