gpt4 book ai didi

c# - Entity Framework SaveChanges 不工作

转载 作者:行者123 更新时间:2023-11-30 22:09:54 25 4
gpt4 key购买 nike

我有一个 C# winforms 应用程序和一个 SQL Server .mdf 数据库文件。

我尝试使用 Entity Framework 。它在从数据库中检索数据时效果很好,但在调用 .SaveChanges() 时没有任何反应。没有错误,没有异常,也没有保存任何更改。

这个问题简直让我抓狂。我发现了一堆几乎相同的问题,但没有一个答案适用于我的情况。

我的代码是这样的:

using (World_ParkingEntities context = new World_ParkingEntities())
{
client _client = context.CreateObject<client>();
_client.name = name;
_client.mobile_number = phoneNo;
_client.email = email;
context.AddToclients(_client);
context.SaveChanges();
}

我的连接字符串:

<add name="World_ParkingEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\World_Parking.mdf;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /></connectionStrings>

最佳答案

整个 User Instance 和 AttachDbFileName= 方法是有缺陷的 - 充其量!在 Visual Studio 中运行您的应用程序时,它将复制 .mdf 文件(从您的 App_Data 目录到输出目录 - 通常是 .\bin\debug - 你的应用程序运行的地方)并且很可能,你的INSERT 工作得很好 - 但你只是在看错误的 .mdf 文件 最后!

如果您想坚持使用这种方法,请尝试在 context.SaveChanges(); 调用之后放置一个断点 - 然后使用 SQL 检查 .mdf 文件Server Mgmt Studio Express - 我几乎可以肯定你的数据就在那里。

在我看来真正的解决方案

  1. 安装 SQL Server Express(无论如何您已经完成了)

  2. 安装 SQL Server Management Studio Express

  3. SSMS Express 中创建您的数据库,为其指定一个合乎逻辑的名称(例如 World_Parking)

  4. 使用它的逻辑数据库名称(当您在服务器上创建它时给定的)连接到它 - 不要弄乱物理数据库文件和用户实例。在这种情况下,您的连接字符串将类似于:

    Data Source=.\\SQLEXPRESS;Database=World_Parking;Integrated Security=True

    其他一切都完全和以前一样...

关于c# - Entity Framework SaveChanges 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21217080/

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