小编Big*_*oe 的帖子

EF4 Context.ApplyCurrentValues不更新当前值

我有一个实体,我检索如下,并与上下文分离:

ctx.Reviews.MergeOption = MergeOption.NoTracking;

Review review = (from r in ctx.Reviews.Include("ReviewNotes")
                 where r.ReviewID == reviewID
                 select r).First();
Run Code Online (Sandbox Code Playgroud)

然后我对关系中的对象进行了更改:

if (review.ReviewNotes.Count > 0)
{
  ReviewNote r = review.ReviewNotes.ElementAt(0);
  r.Note = "Ugg " + DateTimeOffset.Now.ToString();
  r.CreatedDate = DateTimeOffset.Now;
}
Run Code Online (Sandbox Code Playgroud)

然后我附加了Object并循环子节点并在需要时更改它的实体状态.保存更改完成后,不会更新任何内容:

ctx.Reviews.Attach(review);
foreach (ReviewNote item in review.ReviewNotes)
{
   if (item.ReviewNoteID == 0)
   {
       ctx.ObjectStateManager.ChangeObjectState(item, EntityState.Added);
   }
   else
   {
       key = ctx.CreateEntityKey("ReviewNotes", item);
       if (ctx.TryGetObjectByKey(key, out original))
       {
           ctx.ApplyCurrentValues<ReviewNote>(key.EntitySetName, item);
       }

   }
 }

ctx.ObjectStateManager.ChangeObjectState(review, EntityState.Modified);
ctx.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

entity-framework c#-4.0

4
推荐指数
1
解决办法
8280
查看次数

标签 统计

c#-4.0 ×1

entity-framework ×1