I principianti di Entity Framework, quindi per favore abbiate pazienza con me ...La relazione tra i due oggetti non può essere definito, perché sono attaccati alla diversa ObjectContext oggetti MVC 2
Come posso riguardano due oggetti da contesti diversi insieme?
L'esempio seguente genera la seguente eccezione:
System.InvalidOperationException: Il rapporto tra i due oggetti non può essere definito perché sono attaccati a diversi oggetti ObjectContext.
[OwnerOnly]
[HttpPost]
[ValidateInput(false)]
public ActionResult Create(BlogEntryModel model)
{
if (!ModelState.IsValid)
return View(model);
var entry = new BlogEntry
{
Title = model.Title,
Content = model.Content,
ModifiedDate = DateTime.Now,
PublishedDate = DateTime.Now,
User = _userRepository.GetBlogOwner()
};
_blogEntryRepository.AddBlogEntry(entry);
AddTagsToEntry(model.Tags, entry);
_blogEntryRepository.SaveChange();
return RedirectToAction("Entry", new { Id = entry.Id });
}
private void AddTagsToEntry(string tagsString, BlogEntry entry)
{
entry.Tags.Clear();
var tags = String.IsNullOrEmpty(tagsString)
? null
: _tagRepository.FindTagsByNames(PresentationUtils.ParseTagsString(tagsString));
if (tags != null)
tags.ToList().ForEach(tag => entry.Tags.Add(tag));
}
Ho letto un sacco di messaggi relativi a questa eccezione, ma nessuno mi dia una risposta di lavoro ...
aggiunta alla @ risposta di Slauma: Non è possibile riferirsi oggetti attaccati in diversi contesti. L'unico modo è staccare un oggetto dal primo contesto e collegarlo al secondo. È molto più complesso della semplice condivisione del contesto tra i repository. –