c# - Entity Framework 不保存更改

标签 c# asp.net-mvc-3 sql-server-2008 entity-framework-4.1

我有一个 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/

相关文章:

ajax - 即使模型无效,ASP.NET MVC "Ajax.BeginForm"也会执行 OnSuccess

c# - ASP.NET MVC3 C# : Passing query as a parameter and displaying result

sql - 插入表存储过程结果加变量

sql-server-2008 - 如何替换选择查询中的 '

sql - 创建不可为空的列,但使用某个给定值填充现有的 NULL

c# - 我可以在 Linq Comparable 中使用 TryParse 吗?

c# - 使用 Entity Framework 的自引用树的最有效方法

c# - MVC3 路线与区域...有点困惑

c# - 使用枚举是列出不同 "Types of Car"的最佳方式吗

c# - 如何删除excel中每个单元格的回车?