我有一个 MVC 网络应用程序,它使用 SQL Server 2008 作为后端数据库以及 Entity Framework 。该应用程序运行良好,从数据库中提取数据也很好。我的问题是,当它对数据进行更新时,它似乎并没有保存它。我正在使用以下功能:
public void SaveProduct(Product product)
{
if (product.ProductID == 0)
{
context.Products.Add(product);
}
context.SaveChanges(); // Breakpoint here
}
此函数在我的存储库代码中定义。我在上面评论的行上设置了一个断点,应用程序在该行中断,所以我知道它击中了该行并且上下文对象中的更改都很好。没有错误发生,EF 只是出于某种原因没有保存更改。
我相信我的连接字符串是正确的,因为它可以很好地提取数据,但这里是为了以防万一:
<connectionStrings>
<add name="EFDbContext" connectionString="Data Source=localhost;Initial Catalog=WarehouseStore;Integrated Security=True;Pooling=False" providerName="System.Data.SqlClient"/>
</connectionStrings>
有人知道是什么原因造成的吗?
最佳答案
如果您追求插入/更新功能,则必须涵盖这两种情况:
if (product.ProductID == 0)
{
context.Entry(product).State = EntityState.Added;
}
else
{
context.Entry(product).State = EntityState.Modified;
}
context.SaveChanges();
关于c# - Entity Framework 不保存更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9559104/