2009-11-29 4 views
1

Je souhaite spécifier un espace de nom d'entité basé sur ma structure de domaine. Habituellement comme ça:EntityFramework ou LinqToSql Entité, espace de noms

Infrastructure.SqlServer

  • clients (NS: Infrastructure.SqlServer.Customers)
    • clients
    • Adresse
  • Produits (NS: Infrastructure. SqlServer.Products)
    • Produit
    • ProductVariant
    • ProductCategory

Comment puis-je faire avec LinqToSql ou EntityFramework? Il semble que nous pouvons seulement spécifier un "espace de nom d'entité" unique comme Infrastructure.SqlServer.Entities

Merci.

Répondre

0

Je l'ai fait dans notre application. Nos espaces de noms d'entités sont basés sur nos schémas SQL Server. Chaque espace de noms est dans son propre DBML. Malheureusement, L2S ne peut pas modéliser les relations entre les fichiers .DBML, mais nous avons travaillé dans une certaine mesure.

Randy

1

Ceci est possible avec l'EF, mais je ne le recommanderais pas. Le problème est que vous devez aller dans l'EDMX et modifier manuellement le XML (c'est-à-dire quitter le concepteur) pour créer plusieurs schémas dans la partie CSDL du fichier EDMX.

Vraiment pas la peine de le tracas à mon avis.

Alex

0

Eh bien, vous pouvez créer des modèles distincts sur votre schéma de base de données en éliminant les tables de chaque vous n'avez pas besoin. Vous pouvez le faire avec L2S ou Entity Framework. Je suppose que ce n'est pas ce que vous voulez dire cependant. Vous ne seriez pas en mesure d'inclure des entités des deux modèles dans une requête.

Qu'est-ce que vous voulez probablement ...

La plupart des gens ce qu'il faut le faire pour des raisons de maintenance; c'est-à-dire diviser le modèle en morceaux modulaires. J'ai beaucoup expérimenté avec moi-même. Il y a un article here si vous êtes déterminé à persévérer. L'édition manuelle du fichier verbeux EDMX est actuellement très maladroite et sujette aux erreurs. Si ce que vous demandez est l'étendue totale de votre split souhaité c'est probablement bien. Si vous avez un schéma plus grand avec plus de divisions, vous le trouverez probablement trop douloureux.

Cette fonctionnalité est clairement souhaitable pour beaucoup, et nécessaire pour une utilisation dans une base de données Enterprise typique. À long terme, cela sera probablement réparé, mais pour l'instant mon conseil serait de contourner le problème. Pour être complet, LinqToSQL ne supporte pas le découpage d'un modèle.