C# LINQ EF未保存到数据库

C# LINQ EF未保存到数据库,c#,entity-framework,sql-server-ce,C#,Entity Framework,Sql Server Ce,我想这是我问的最后一个问题的延续 在执行插入操作时,我没有收到任何错误,但实际上没有数据进入我的数据库。我的数据库是一个SDF文件(SQL CE)。你知道要检查什么吗 我的app.config看起来像: <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> </configSections> <connectionStrings>

我想这是我问的最后一个问题的延续

在执行插入操作时,我没有收到任何错误,但实际上没有数据进入我的数据库。我的数据库是一个SDF文件(SQL CE)。你知道要检查什么吗

我的app.config看起来像:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
  </configSections>
  <connectionStrings>
    <add name="Lab_Use_Billing.Properties.Settings.LabUseConnectionString" 
         connectionString="Data Source=|DataDirectory|\Models\LabUse.sdf" 
         providerName="Microsoft.SqlServerCe.Client.3.5" />
    <add name="LabUseEntities" 
         connectionString="metadata=res://*/Models.LabUseEntities.csdl|res://*/Models.LabUseEntities.ssdl|res://*/Models.LabUseEntities.msl;
                           provider=System.Data.SqlServerCe.3.5;
                           provider connection string=&quot;Data Source=|DataDirectory|\Models\LabUse.sdf&quot;" 
         providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>


TIA让我猜猜,您的数据库是您计算机上的本地数据库吗?尝试在project debug文件夹中查找数据库,看看是否有您的更改


只需将调试数据库作为新连接添加到服务器资源管理器中,然后刷新以查看是否存在更改…

您可以发布用于在数据库中创建行的代码吗

我假设您正在更新对象上下文,然后使用以下内容:

        myContext.AddToWidgetSet(widget);
        myContext.SaveChanges();

如果您遵循我提供的链接,代码就在那里(尽管它后来只是稍微改变了一点)。本质上,您所写的是正确的。当实体的备份db表没有指定主键时,会抛出您在上一篇文章中提到的错误(“无法更新EntitySet'ImportDoorAccess',因为它有一个DefiningQuery,并且元素中不存在支持当前操作的元素”)。数据库表IMPORTDORACCESS是否指定了主键列?如果是,它是一个标识列吗?在回答了最后一个问题后,它确实定义了一个PK。但不是身份栏,而是日期和徽章编号的双栏键。这现在很好。这里列出了另一个答案,我相信我已经解决了。我感谢你花时间和精力帮助我!瞧!他们在那里。现在,为什么它不连接到我的连接字符串所指向的位置,而不是Bin/Debug版本?当我要发布此文件时,我应该做些什么来确保它工作?@Keith it将工作,您正在查看的数据库是项目文件夹中的数据库,但在调试文件夹中会创建一个与之分离的数据库文件。我不知道为什么,但我花了大约3天的时间研究这个问题,因为我在我的一个项目中遇到了同样的问题。。。当您部署它时,它将使用一个数据库文件。