名前は同じですが、異なるスキーマの複数のテーブルを持つデータベースがあります。Linq2Sql:同じ名前と異なるスキーマ名を持つテーブルを扱う方法
[DatabaseName].[Schema1].[MyTable]
[DatabaseName].[Schema2].[MyTable]
Linq2Sqlこのデータベース用のコードを生成する場合、それはちょうど最初のスキーマからテーブルをピックアップし、完全に第二スキーマ無視ように見える:
[Table(Name="[Schema1].MyTable")]
public partial class MyTable { }
これは効果的になるが、それは不可能例えばLinq2Sqlを使用して2番目のスキーマのテーブルをクエリします。このための回避策はありますか?私が持っているように、
私の最初のアイデアは、手動で生成されたコードを編集することです:
[Table(Name="[Schema1].MyTable")]
public partial class Schema1MyTable { }
[Table(Name="[Schema2].MyTable")]
public partial class Schema2MyTable { }
が、データベースの変更は巨大な苦痛になり、このコードを毎回維持すること。他のアイデア?
ええ、両方のクラスを別々に生成するのは良いことですが、問題はクラスの名前です。どのスキーマのターゲットポイントをターゲット1と区別することができますか?私はそれらにatargetやbtarget、またはa_targetやb_targetのような名前を付けることを好みます。 –
@lfoust - デザイナーからいつでも名前を編集できます。 – arcain
私はデザイナーか生成されたコードで編集するかどうかにかかわらず、データベースが変更され、モデルを再生成する必要があるたびに再編集する必要があるという問題があります。 –