簡體   English   中英

Linq2Sql:如何處理具有相同名稱和不同模式名稱的表

[英]Linq2Sql: How to handle tables with the same name and different schema names

我有一個包含多個表的數據庫,這些表具有相同的名稱但來自不同的模式。 例如:

[DatabaseName].[Schema1].[MyTable]
[DatabaseName].[Schema2].[MyTable]

當Linq2Sql為此數據庫生成代碼時,它似乎只是從第一個模式中獲取表並完全忽略第二個模式:

[Table(Name="[Schema1].MyTable")]
public partial class MyTable {  }

這實際上使得無法使用Linq2Sql在第二個模式上查詢表。 這有解決方法嗎?

我的第一個想法是手動編輯生成的代碼,以便我有:

[Table(Name="[Schema1].MyTable")]
public partial class Schema1MyTable {  }

[Table(Name="[Schema2].MyTable")]
public partial class Schema2MyTable {  }

但每次數據庫更改時都必須維護此代碼將是一個巨大的痛苦。 還有其他想法嗎?

看起來這不再是Visual Studio 2010中的一個問題。我創建了兩個表,都命名為target ,並將一個綁定到schema a ,另一個綁定到schema b 我添加了DBML並將兩個目標表(一個顯示為目標(a)和另一個目標(b)在服務器資源管理器中)提取到設計器上。 這創建了一個名為target的類,另一個名為target 1 生成的代碼(為清晰起見而編輯)顯示工具現在生成的類與上面的示例代碼非常相似:

[global::System.Data.Linq.Mapping.TableAttribute(Name="a.target")]
public partial class target
{ //... class implementation snipped
}

[global::System.Data.Linq.Mapping.TableAttribute(Name="b.target")]
public partial class target1
{ // ... class implementation snipped
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM