[英]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.