SQLite是不会得到更新

问题描述:

这是我的app.configSQLite是不会得到更新

<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0"/> 
    </startup> 
    <connectionStrings> 
    <add name="DataBaseEntity" connectionString="metadata=res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl;provider=System.Data.SQLite;provider connection string=&quot;data source=I:Sompepath\dbfilename&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
</configuration> 

以下是使用

using (var context = new DataBaseEntity("name=DataBaseEntity")) 
      { 
       context.Connection.Open(); 
       var status = delegatefunction(context); 
       if (status) 
       { 
        context.AcceptAllChanges(); 
        context.SaveChanges(SaveOptions.DetectChangesBeforeSave); 
        context.Connection.Close(); 
        return true; 
       } 
       return false; 
      } 

委托函数看起来像这样

(context =>{var abc = new xyz();     
      context.xyzs.AddObject(abc);}); 

数据库没有具有刚刚添加到代表中的数据

并且在应用

在上下文的连接对象看起来像这样

the database and datasource are empty

删除context.AcceptAllChanges();调用告诉EF不存在未决的改变,因此SaveChanges没有什么也不例外保存到数据库,因为它认为所有更改都已保存。

AcceptAllChanges一般在SaveChanges之内调用一旦所有修改都正确保存到数据库中。此方法是公开的,用于支持您想要在multiple context within single transaction上保存修改的一些复杂场景。

+0

哇,工作真棒,谢谢 – 2012-07-23 09:37:08