2009-08-27 7 views
2

Ok ... J'ai essayé google et je n'ai pas eu beaucoup de résultats. Je ne veux pas abuser Donc, mais c'est l'un des meilleurs endroits à demander et EF n'est pas bien documenté.Entity Framework: Echec de l'outil /Association :)

Mon échec échoue car GetOriginal() renvoie null dans UpdateCmsProductCategory. Je suppose que cela signifie que currentCmsProductCategory n'est pas dans le ChangeSet. Ok ... comment puis-je le mettre dans le changeset?

Voici la séquence ...

Je tire un CmsProductCategory vers le bas sur WCF. Je fais des changements. j'appelle la méthode de mise à jour WCF ...

public void UpdateProductCategory(CmsProductCategory category) 
{ 
    domainservice.UpdateCmsProductCategory(category); 
} 

Ce qui appelle la méthode Servide domaine ...

public virtual void UpdateCmsProductCategory(CmsProductCategory currentCmsProductCategory) 
{ 
    this.Context.AttachAsModified(currentCmsProductCategory, 
     this.ChangeSet.GetOriginal(currentCmsProductCategory)); 
} 

Et cela devrait fonctionner - mais non, il Exceptions sur moi GetOriginal() échoue . J'ai l'impression qu'il me manque un pas entre le moment où le code le modifie et je le passe à Wcf.

Avez-vous des conseils ou des indications sur une bonne documentation?

Merci!

Répondre

1

Votre problème est probablement que vous perdez le "contexte". Lorsque vous effectuez l'appel pour mettre à jour le "this.Context" n'est pas le même que celui que vous avez lu.

WCF a un concept de "par appel" et "par session". Le "par appel" est par défaut vous obtenez donc une nouvelle instance du service de domaine. Vous pourrez peut-être le résoudre en utilisant chaque session.

Jetez un oeil à ce lien: http://msdn.microsoft.com/en-us/magazine/cc163590.aspx

Essayez également d'écrire un test pour vérifier que ce que vous faites fonctionne sans transférer les données sur WCF.