2010-09-10 5 views
1

Besoin d'aide ou de conseils avec entity framework v4.framework d'infrastructure v4 et wpf

Comme vous le savez déjà, EF v4 ne prend pas en charge le chargement paresseux des propriétés scalaires. Si j'ai un objet entité par exemple Order dans le modèle avec de nombreuses propriétés scalaires, certaines d'entre elles coûtent cher à charger à partir de DB, comme le fichier joint par exemple.

Comme je l'ai trouvé plus tard, il est possible de déplacer ces propriétés coûteuses vers une autre entité par exemple Order1 et de les remapper sur la table DB. La table DB d'origine sera mappée à 2 entités - Order - avec les propriétés ID et Name et Order1 - avec toutes les autres.

Que dois-je faire? Dans l'interface utilisateur, je vais avoir un ListBox rempli avec l'entité Order (ID - Nom de toutes les commandes) sur le côté gauche et toutes les autres propriétés coûteuses de Order1 sur le côté droit pour l'ordre cliqué dans la liste. Propriétés de Order1 paresseux chargées, et avec savechanges de travail, supprimer des objets etc .... Comment faire un objet métier pour la commande lorsque les entités sont séparées et comment configurer avec la liaison wpf?

grâce

Répondre

0

Avoir 2 modèles complique votre programme, et peut être une source de bugs. Je préfèrerais utiliser un seul modèle, puis charger les objets de manière sélective selon mes besoins.

Je voulais dire utiliser un seul modèle de structure d'entité. On dirait que tu fais déjà ça. Ce que vous devez faire pour charger explicitement des données lorsque vous en avez besoin, voir http://msdn.microsoft.com/en-us/library/bb896249.aspx.

Il s'agit en fait d'une desision de conception de MS, pour vous forcer à être conscient des données dont vous avez besoin à quel moment. Avec le chargement paresseux automatique, cela fonctionne, mais vous pouvez ensuite rencontrer des problèmes plus tard en raison de problèmes de mise à l'échelle.

+0

vous voulez dire 2 entités pour la même table DB? ou 2 modèles de cadre d'entité? Je n'ai qu'un seul modèle de cadre d'entité. Comment charger des articles de manière sélective? quand je n'ai qu'une seule entité pour la table Order DB, je peux charger 2 colonnes comme ceci var query = db.Order.Select (o => nouveau {IDorder = o.IDorder, Name = o.Name}) .ToList() .Sélectionnez (x => nouvel ordre {IDorder = x.IDorder, Name = x.Name}); mais avec une telle requête, savechanges ne fonctionne pas en raison du contexte .... – vikox

Questions connexes