Ala*_*aor 11 c# persistence entity-framework sql-server-express
我正在使用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();
}
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我得到了50个输出,如果我在调试中查看c变量的内容,有50个变化,每个事情似乎都很好,但是当我启动查询浏览器并查看我的MDF数据库的内容时,那里什么都没有.
可能它很简单,但我看不出它是什么,我需要你的帮助.
Ala*_*aor 15
我刚刚发现了什么问题,我猜其实并没有错.我强制一个错误,然后我可以看到我访问的数据库是在bin目录中,每当我运行应用程序时,Visual Studio都会将我的数据库复制到bin目录,这就是为什么如果我手动添加一些数据我可以看到它,但运行时中的保存不会持久化.我一直在服务器上使用数据库,这是我第一次使用本地数据库,所以我搞砸了,但非常感谢你的帮助!
如果要在构建时禁用复制数据库,则必须从解决方案资源管理器中访问Copy to Output Directoy该.mdf文件.
只需将其更改为Copy if newer或Do not copy.
请注意,访问数据库时存在Copy if newer一些风险..mdf
| 归档时间: |
|
| 查看次数: |
4405 次 |
| 最近记录: |