J'ai une base de données avec plusieurs tables qui ont le même nom mais qui proviennent de schémas différents. Par exemple:Linq2Sql: comment gérer des tables avec le même nom et différents noms de schéma
[DatabaseName].[Schema1].[MyTable]
[DatabaseName].[Schema2].[MyTable]
Lorsque Linq2Sql génère du code pour cette base de données, il semble être juste ramasser la table du premier schéma et en ignorant complètement le second schéma:
[Table(Name="[Schema1].MyTable")]
public partial class MyTable { }
Cela rend effectivement impossible interroger la table sur le second schéma en utilisant Linq2Sql. Y at-il une solution de contournement pour cela?
Ma première idée est de modifier manuellement le code généré pour que j'ai:
[Table(Name="[Schema1].MyTable")]
public partial class Schema1MyTable { }
[Table(Name="[Schema2].MyTable")]
public partial class Schema2MyTable { }
mais avoir à maintenir ce code chaque fois que les modifications de la base de données serait une douleur énorme. D'autres idées?
Oui, il est grand qu'il génère des classes séparées pour les deux, mais le problème est le nom de la classe. Comment pouvez-vous dire quelle cible de schéma pointe vers target1? Je préférerais les nommer quelque chose comme atarget et btarget ou a_target et b_target. –
@lfoust - Vous pouvez toujours modifier les noms du concepteur. – arcain
Que je l'édite dans le concepteur ou dans le code généré, j'ai toujours le problème de devoir le ré-éditer chaque fois que la base de données change et que le modèle doit être re-généré. –