具有多个数据库的Subsonic 3.0 LINQ模板

时间:2010-02-24 15:57:23

标签: subsonic t4 multiple-databases

我正在评估SubSonic 3.0用于我们的业务,以替代我们的POCO对象。我是SubSonic的新手,昨天安装它。我已经到了可以使用3.0 LINQ T4模板连接到一个数据库的地步,并且已经被使用SubSonic能够连接到一个应用程序中的多个数据库的承诺所吸引。

我的问题是我找不到任何关于如何将T4模板用于多个数据库的文档(例如添加另一个连接字符串,设置Settings.ttinclude等)。

我搜索了Google和Stackoverflow,以便了解如何做到这一点或者是否可行。任何帮助将不胜感激。


所以我似乎能够通过向web.config添加另一个connectionString来使其工作,然后为该connectionString添加第二组模板,它可以工作,但它似乎并不“干净”甚至真的干我。

似乎我可以通过添加多个.dbml文件来使用.NET内置的LINQ做几乎相同的事情。

有人可以给我一些推理,为什么我们不应该只使用内置的LINQ支持而不是像SubSonic这样的第三方ORM?

2 个答案:

答案 0 :(得分:5)

从亚音位邮件列表中发帖:

哦,是的,我一直这样做,诀窍是两个模板副本(简单)或编辑模板迭代两组表(更难)。在第二个settings.tt中,更改连接字符串的名称以反映其他数据库。您可能还希望更改命名空间,以便在表名相同时不会发生冲突。它似乎很hacky但我不认为这是因为它允许您独立地更改每个数据库的模板。

如果你真的只想要一组模板,最简单的方法是编辑SQLServer.tt(或你选择的数据库)并覆盖LoadTables的工作方式,使它接受连接列表而不是单个连接一。我不得不说这是一个痛苦,它比拥有2个文件副本要困难得多。

答案 1 :(得分:1)

(回复你的问题的答案)

  

在这一点上,有人可以给我一些推理,为什么我不应该像SubSonic这样的第三方ORM使用内置的LINQ?

立即想到:SubSonic不仅仅支持Microsoft Sql Server。