基本实体框架和本地数据库,无法添加记录

时间:2014-11-19 14:54:42

标签: c# database entity-framework local-database

自从我使用Entity Framework已经有几年了,所以也许我的大脑很糟糕,但是我无法添加记录来坚持一个简单的数据库。

数据库是一个本地数据库"但我不是先做代码。它有两个表,Tab3和Tab4。 Tab3具有列Id(唯一,主键,标识)和Col1(nvarchar,允许空值),col2(nvarchar,允许空值)。这包含两行。 edmx模型和映射对我来说很好看。这应该是一个简单的设置。

代码是这样的:

            using (DBMod1Entities1 context = new DBMod1Entities1())
            {
                Tab3 t3 = new Tab3();
                t3.Col1 = "e";
                t3.Col2 = "3";
                context.Tab3.Add(t3); 
                int res = context.SaveChanges();
                Debug.WriteLine("Results from SaveChanges() " + res.ToString() );
                int cnt = context.Tab3.Count();
                Debug.WriteLine("Count records " + cnt);
            }

它运行并转储到输出:

Results from SaveChanges() 1
Count records 3

如果我这样称呼:

        using (DBMod1Entities1 context = new DBMod1Entities1())
        {
            int cnt = context.Tab3.Count();
            Debug.WriteLine("Count records " + cnt);
        }

我得到了预期的结果:

Count records 3

如果我继续添加愚蠢的记录,计数会继续增加,如预期的那样。

但如果我重新启动程序,则数据不在本地数据库中。原始的两个记录保留在数据库中,但我添加的记录没有保留。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我实际上找到了答案: Database file .sdf does not update after closing application

简短说明默认情况下,每次从Visual Studio启动程序时,“本地数据库”都会复制到BIN文件夹,因此会替换以前运行的数据。我在属性中禁用了“copy”,并将app.config更改为指向我想要更新的数据库。