调用ObjectContext.SaveChanges()后,数据库更改不会保留

Bra*_*rad 0 .net c# entity-framework

我试图使用实体框架将记录插入表中.我制作了我的数据库(mdf文件),从数据库(edmx)制作了一个模型,现在我正在尝试插入一条记录.

Users Brad = new Users
{
    UserInitials="BCH",
    UserName="Brad"
};
using (WeighProgramDatabaseEntities wDB = new WeighProgramDatabaseEntities())
{
    wDB.Users.AddObject(Brad);

    int res = wDB.SaveChanges(System.Data.Objects.SaveOptions.AcceptAllChangesAfterSave);
    List<Users> lwt = wDB.Users.ToList();  //call to look at the inserted data
}
Run Code Online (Sandbox Code Playgroud)

当我按照这个程序看来一切正常.我wDB.Users.ToList();返回一条记录,这是我刚插入的记录.但是,如果我再次运行我的代码,删除插入的东西,只是调用查询(只留下)List<Users> lwt = wDB.Users.ToList();我的查询不返回任何记录.我应该做些什么来让我的更改持续存在?为什么我的记录"消失"?

WeighProgramDatabaseEntities继承自ObjectContext.

这是我第一次尝试使用EF的东西,所以我的一些措辞可能不正确,我可能没有包含一些重要内容 - 让我知道.

编辑:

我认为我的问题是我的插入/更新/删除功能没有映射.但我不知道如何为他们创建存储过程映射到...

EDIT2:

好的,phew,我想出了存储过程映射.现在我有一个INSERT映射,我称AddObject它实际上将被插入.

比我想象的要复杂一点.例如,如果我右键单击数据库资源管理器中的表并选择新查询,它会将我带到一个很棒的查询设计器窗口,让我创建插入,选择,更新......但是没有保存按钮!它是灰色的.我需要从另一个路径写它们,不让我通过GUI生成插入/删除/更新.我猜这是好的,因为它们不是很多文字,但仍然有点麻烦.

dmu*_*ial 6

我认为您ConnectionString指向解决方案的Debug/Release文件夹中的mdf,并且每次构建应用程序时可能会覆盖该文件,这就是您认为更改未持久化的原因.尝试将其设置ConnectionString为指向项目文件夹中的mdf(项目实际引用的那个).