【发布时间】:2011-09-19 18:22:46
【问题描述】:
首先是背景。我们的应用程序基于 ASP.NET MVC3、.NET 4.0 构建,并使用 Linq-to-Sql (PLINQO) 作为其主要的数据访问方式。我们的 Web 应用程序是一个多租户/多客户端系统,每个客户端都有自己的 Sql Server 数据库。到目前为止,每个 Sql Server 数据库都具有完全相同的架构。
通常,客户会要求我们在他们的 Db 中跟踪其他客户不跟踪的自定义字段。我们处理这个问题的方法是在我们的主表的数据库中保留一些自定义字段。例如,我们的 Widget 表可能有一个 CustomText1、CustomText2..CustomText10 和一个 CustomDate1、CustomDate2..CustomDate10 字段。同样,我们跨客户端的所有模式都是相同的,因此 Linq-to-Sql 处理这些字段就像处理任何其他字段一样容易。
现在我们遇到了一个问题,客户端需要数百个 CustomBool 字段,但不需要其他字段。因此,基本上,我们正在研究仍然使用 Linq-to-Sql 的方法,但根据它所连接的数据库,让它针对可能不同的模式工作(尽管它们在非常具体的方式上有所不同。)
已经在 Linq-to-Sql 上构建了太多代码并访问由它生成的 Widget 类,我不希望只是回退到直接的 SQL。
我已经在此处和网上看到了有关 Linq to Sql 访问具有相同架构的不同表的方法的答案,但我还没有找到跨具有不同列的不同数据库的相同表名的好的答案。
这可能吗?
【问题讨论】:
标签: linq-to-sql