gpt4 book ai didi

c# - Entity Framework 不会在 SQL Express (MDF) 中保留数据

转载 作者:可可西里 更新时间:2023-11-01 08:38:29 26 4
gpt4 key购买 nike

我正在使用 Entity Framework 开发应用程序并将数据存储在 .mdf 数据库中。我的代码可以读取数据,显然它也可以保存,但只是表面上。它没有错误,当程序运行时它就像数据已保存一样,例如我可以保存一个对象,处理上下文,创建一个新对象,然后当我搜索我的对象时它就在那里!但是当我查询数据库以查看存储的数据时,那里什么也没有。如果我关闭应用程序并再次运行它,所有数据都将消失。这是我为测试而编写的示例代码:

        using (DatabaseEntities e = new DatabaseEntities())
{
for (int i = 0; i < 50; i++)
{
User u = new User();
u.Nome = "User" + i.ToString();
e.AddToUser(u);
}
int c = e.SaveChanges(true);

List<User> us = e.User.Where<User>(x => x.ID < 50).ToList<User>();

foreach (User u in us)
Console.WriteLine("ID: " + u.ID + " Hello from " + u.Nome);

Console.ReadKey();
}

当我运行它时,我得到 50 个输出,如果我在调试中查看 c 变量的内容,有 50 个更改,一切似乎都很好,但是当我启动查询浏览器并查看我的内容时MDF 数据库,那里什么都没有。

可能这是非常简单的事情,但我看不出它是什么,我需要你的帮助。

最佳答案

我刚刚发现出了什么问题,我想实际上并没有什么问题。我强制出错,然后我可以看到我正在访问的数据库在 bin 目录中,Visual Studio 每次运行应用程序时都会将我的数据库复制到 bin 目录,所以这就是为什么如果我手动添加一些数据我可以看到它,但运行时中的保存不会保留。我一直在服务器中使用数据库,这是我第一次使用本地数据库,所以我搞砸了,但非常感谢您的帮助!


编辑:提供解决方案

如果您希望在构建时禁用复制数据库,那么您必须从解决方案资源管理器的 .mdf 文件中访问 Copy to Output Directoy
只需将其更改为 Copy if newerDo not copy

请注意,Copy if newer 存在一些风险 when accesing a .mdf Database .

关于c# - Entity Framework 不会在 SQL Express (MDF) 中保留数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/875995/

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