2010-10-06 91 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