У меня есть база данных с несколькими таблицами, которые имеют одинаковое имя, но из разных схем. Например:Linq2Sql: Как обрабатывать таблицы с одинаковыми именами и разными именами схем
[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 { }
но необходимости поддерживать этот код каждый раз, когда изменения в базе данных будет огромная боль. Любые другие идеи?
Да, это здорово, что он генерирует отдельные классы для обоих, но проблемы это имя класса. Как вы можете определить, какой целевой объект схемы указывает на vs target1? Я бы предпочел, чтобы он назвал их чем-то вроде atarget и btarget или a_target и b_target. –
@lfoust - Вы всегда можете редактировать имена дизайнера. – arcain
Независимо от того, редактирую ли я его в конструкторе или в сгенерированном коде, мне все еще приходится переделывать его каждый раз, когда база данных изменяется, и модель должна быть сгенерирована повторно. –