为什么我的LINQ中插入未在SQL Server CE 3.5坚持?(Why are my LINQ

2019-07-03 22:03发布

我使用LINQ与SQL Server Compact 3.5版和VS2008为SQL。

我有一个非常简单的表(令牌)与唯一标识符的主键(TokenID)和另外两个可为空字段(UsedBy和UsedOn)。 我试图使用LINQ插入新行到表中,但由于某种原因,他们没有坚持。

这里是我的代码:

        var connectionstring = "Data Source=|DataDirectory|\\MyData.sdf";
        MyData db = new MyData(connectionstring) { Log = Console.Out };

        Tokens token = new Tokens { TokenID = Guid.NewGuid() };
        db.Tokens.InsertOnSubmit(token);
        //db.GetChangeSet();
        db.SubmitChanges();

        var tokens = from t in db.Tokens
                     select t;
        foreach (var t in tokens)
        {
            Debug.Print(t.TokenID.ToString());
        }

如果我取消db.GetChangeSet(); 我可以看到挂起的插入,当我重复,并将其打印到调试寡妇令牌#每次增长。 但是,如果我在查询VS表(通过显示表的数据),它是空的? 查看数据这样也“重置”通过LINQ返回其原始状态的标记。

我敢肯定我做一些简单的错误,但我不能看到它。 有任何想法吗?

Answer 1:

检查每个构建你的数据库文件不会被复制到输出目录(项目项的属性页)



Answer 2:

当然张贴我的问题后的5分钟,我有一个巨大的DUH! 时刻。 原来我在我的项目刷新数据库,查看是否插入时,我应该已经检查\ BIN \调试\ MyData.sdf而不是被持续。

相信代码肖恩,信任的代码。 哦,记住你有时是个白痴。



文章来源: Why are my LINQ INSERTS not persisting in SQL Server CE 3.5?