gpt4 book ai didi

c# - EF 4.4 不检测 AutoMapper 所做的更改

转载 作者:太空宇宙 更新时间:2023-11-03 13:55:10 30 4
gpt4 key购买 nike

我正在为我的 webApi 使用存储库模式,并尝试使更新工作。它所做的是从 mvc webapi Controller 接收一个"new"实体,并尝试更新现有对象

public void Update(TEntity entity)
{

var oldEntry = _context.Set<TEntity>().Find(entity.Id);

oldEntry = Mapper.Map(entity, oldEntry);

Console.WriteLine(oldEntry.ToString());

_context.SaveChanges();

}

保存更改不执行任何操作。

如果我明确指定

oldEntry.SomeTextProperty = "TestText";

然后调用

 _context.SaveChanges();

一切都很好。如何解决这个问题?或解决这个问题?也许有办法告诉 AutoMapper 调用属性 setter ?

最佳答案

您必须在保存更改之前告诉 EF 您修改了您的实体。这应该在框架 4.5 中工作

_context.Set<TEntity>().AddOrUpdate(new[] {oldEntry});

或者这可能在框架 4 中:

_context.Entry(oldEntry).State = System.Data.EntityState.Modified;

关于c# - EF 4.4 不检测 AutoMapper 所做的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12496484/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com