Entity Framework 4 - STE - DB simple avec blogs à table unique ayant colonne blogid PK ...Entity Framework ObjectContext implémentation correcte de Unit Of Work Pattern?
var samplesDbEntities = new SamplesDBEntities();
var blogId = Guid.NewGuid();
samplesDbEntities.Blogs.AddObject(new Blog() { BlogID = blogId });
var objectSetResult = samplesDbEntities.Blogs
.Where(p => p.BlogID == blogId)
.SingleOrDefault();
(résultat de l'exécution de code => == null objectSetResult après la dernière ligne)
AFAIK, ObjectContext est l'implémentation du pattern UoW et dans ce cas je suppose que je devrais récupérer le résultat de ObjectSet (Repository) juste "marqué comme transitoire" Quelqu'un peut-il m'expliquer ce que je fais mal et pourquoi objectSetResult a une valeur nulle ici ?
(Oui, je suis au courant de ObjectStateManager, mais pour moi, il est plus d'un patch pour le problème architectural haut mentionné)
-1 cos cela ne répond pas à la question "Est-ce que Entity Framework ObjectContext est correctement implémenté de Unit Of Work Pattern?" – Restuta
Assez juste. Voir la mise à jour – Yakimych
Mon cas d'utilisation est qu'une entité est ajoutée et récupérée avant que la persistance ne se produise - quel est le but de UoW si je dois persister chaque entité seule et non en batch? En ce qui concerne le code de mise à jour, ne pensez-vous pas que le fait de savoir que j'ai besoin d'utiliser ObjectStateManager est mauvais (fuite d'infrastructure)? Pas le cas dans mon exemple trivial, mais que "get" peut se produire dans un endroit complètement différent où je ne saurais pas si quelque chose est ajouté. Pourquoi cela ne sera pas encapsulé à l'intérieur de l'OBjectSet lui-même (comme UoW devrait le faire) et juste être reconnu pendant la persistance? –