使用Subsonic 3.0 SimpleRepository连接到现有数据库

4
我想在我的项目中使用subsonic 3.0 SimpleRepository,但是有一个问题:
如果我的表名像Product等,那么我无法从数据库获取任何数据,因为subsonic生成的sql语句类似于“Select * from Products ...”
注:我不想更改我的表名。
我编写了一个t4模板来解决这个问题,希望有人可以查看我的代码并告诉我是否做得正确?
代码:SimpleRepositoryDemo
2个回答

3

看起来你已经设计好了一个数据库,如果是这样的话,我建议你使用LinqTemplates或ActiveRecord。SimpleRepository似乎更适合于代码优先开发流程而不是数据库优先。


是的,这是一个现有的项目。 但是如果我使用LinqTemplates或ActiveRecord,我必须在将新记录插入数据库之前将我的实体转换为Subsonic生成的实体。 - NEE
是的,你可以这样做,但如果你使用了LinqTemplates,我希望你能够用生成的实体替换现有的实体,并将任何必要的现有功能移动到部分类中。 - Adam Cooper
但我不想改变我的实体。
  1. 我想保持我的实体简单。
  2. 移动数百个实体并不是一件容易的工作。
- NEE

3
所以,看起来您有一个现有的数据库模式和一个现有的实体模型(也称为存储库),您希望ORM将数据推送/拉取到您的数据库和应用程序之间。不幸的是,SubSonic不适用于此场景。 SubSonic将根据您的数据库模式创建实体模型,或者根据您的实体模型创建数据库模式。但它不会从一个映射到另一个,因为它的设计理念是“约定优于配置”。SubSonic很简单,这是它的优势,但简单性是有代价的。对于这种情况,您需要NHibernate。它被设计为具有很多可配置性。请参见http://nhforge.org/Default.aspx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接