2010-10-06 97 views
4

我有一个在生产和开发环境中运行的应用程序。我想更好地利用数据库(并节省我的托管账单上的钱),所以我希望能够使我的Linq2Sql运行在两个不同的模式(而不是两个不同的数据库)上(模式中有~15个表)。如何在Linq2Sql中设置它?Linq2sql在不同的SQL Server架构上

或者我应该走的距离和实体框架读了,而不是(并且可以分段表基础上在这一个模式?

任何其他办法解决这一问题,欢迎?

回答

1

这在LINQ to SQL中比在EF中更容易实现,并非如此简单,请注意,几年前,我写了a blog post关于如何实现它,但其核心是指定映射源在您的上下文构造函数中。

XmlMappingSource source = XmlMappingSource.FromUrl("TestLINQ.map"); 
// Could also use XmlMappingSource.FromXml(string) 
using (LINQ.TestLINQDataContext context = new LINQ.TestLINQDataContext(Properties.Settings.Default.TestConnectionString, source)) 
{ 

使用此方法,可以将映射源更改为指向您想要的模式(或表名)。

+1

优秀!我们设法使用相同的DBML对象处理不同的DB模式(以一种简单的方式...) – 2013-07-05 13:49:10

+1

只需指出在博客文章中给出的创建.map文件的命令只会在dbml文件中生成表。如果你想生成包含表格,视图等的.map文件,你应该添加“/ code/views/sprocs/functions”选项。 – 2013-08-29 07:47:09