我刚刚开始使用 Subsonic 2.2,到目前为止印象深刻 - 认为它会节省我一些认真的编码时间。
在我开始全职使用它之前,尽管有些事情困扰着我,我想解决一下。
在我当前的数据库(SQL2008 数据库)中,我已按架构/所有者名称将表、视图、sps 等拆分为单独的块,因此所有客户表都在客户中。架构,产品中的产品。架构等,因此要从客户地址表中进行选择,我会执行 select * from customer.address
不幸的是,Subsonic 忽略了架构/所有者名称,只提供了基表名称。这很好,因为模式之间没有重复项(例如 Customer.Address 和 Supply.Address 并不同时存在),但我只是觉得如果可以按模式拆分,代码会更清晰。
理想情况下,我希望能够按架构/所有者更改命名空间 - 我认为这对 SubSonic 的影响最小,但使生成的代码更易于阅读。
问题是,我已经爬遍了 Subsonic 源代码,但不知道如何做到这一点(我用 VB 编码而不是 C# 没有帮助 = 是的,我知道,归咎于 ZX Spectrum!)
如果有人以前解决过这个问题或者知道如何解决它,我将非常感激,
提前致谢。
Ed
我也打算建议采用多提供商方法。
但许多管道已经处于亚音速状态。
如果您在 CS_ClassTemplate.aspx 中编辑几行,您可以为每个所有者配置文件创建一个命名空间。将第 58 行(我使用的是 v2.1)更改为
namespace <%=provider.GeneratedNamespace%><%=owner%>
所有者在哪里
string owner = "." + tbl.SchemaName;
if(owner == ".dbo")
owner = "";
您将其放在上面第 14 行附近。这样您就可以为每个所有者拥有一个命名空间,例如:
Northwind.供应商、Northwind.客户等
我将 dbo 保留为 Northwind,因此所有测试都无需进行大量编辑即可编译。
我运行了一个简单的选择查询,我认为它会按照您想要的方式工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)