【发布时间】:2012-03-04 21:45:21
【问题描述】:
我有一个 MVC Web 应用程序,它使用 SQL Server 2008 作为后端数据库以及实体框架。该应用程序运行良好,并且从数据库中提取数据也很好。我的问题是,当它更新数据时,它似乎没有保存它。我正在使用以下功能:
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>
有人对可能导致这种情况的原因有任何想法吗?
【问题讨论】:
-
假设您正在针对 SQL Server 运行 :-) 您是否打开了 SQL 分析器并查看 EF 是否正在向数据库发送任何查询?在任何保存更改完成之前,应该有一个来自 EF 的分析器中的登录条目。
-
您是否检查过是否点击了
context.Products.Add(product);如果没有,则没有保存任何内容。 -
@veblock - 我还没有添加产品的视图,所以我还不能测试那个部分
标签: c# asp.net-mvc-3 sql-server-2008 entity-framework-4.1