2010-10-04 23 views
2

En utilisant WCF RIA Services et Entity Framework 4.questions de composition dans le cadre de l'entité 4: L'entité est en lecture seule actuellement

J'ai 3 DTO: école, État, District. L'état DTO a une propriété District avec composition. Et l'école DTO a une propriété d'État avec composition et une association de district. L'idée, c'est que lorsque nous créons/mettons à jour une école, nous permettons également à l'utilisateur d'entrer dans l'état et le district (qui peut être existant ou nouveau). Lorsque vous créez un nouvel état et district, tout fonctionne correctement. Mais lorsque je crée juste un nouveau district à l'intérieur d'un état existant, j'obtiens l'erreur suivante: "Cette entité est actuellement en lecture seule, l'une des conditions suivantes existe: une méthode personnalisée a été invoquée, une opération de soumission est en cours, ou les opérations d'édition ne sont pas supportées pour l'entité Type "

+0

Avez-vous eu nulle part avec ça? Je reçois la même erreur sauf qu'elle ne se produit que très rarement et qu'il est difficile à reproduire. J'aimerais pouvoir trouver un bon moyen de déboguer ça ... – Skrymsli

Répondre

3

J'ai rencontré celui-ci aujourd'hui et j'ai déterminé que mon bogue était causé par le 2ème problème décrit dans le message d'erreur:" une opération de soumission est en cours. "

Voici mon incorrect Code:

dim c as new Car() 
myContext.Cars.add(c) 
myContext.SubmitChanges() 
c.Color = "Red" 

Notez que j'ai changé de manière incorrecte l'entité après l'appel SubmitChanges. Bien que SubmitChanges ait lieu avant que je modifie mon entité, SubmitChanges se produit de manière asynchrone, il n'y a donc aucune garantie que les modifications seront soumises avant que je modifie l'entité.

Voici le code corrigé:

dim c as new Car() 
myContext.Cars.add(c) 
c.Color = "Red" 
myContext.SubmitChanges()