【问题标题】:Is it possible to achieve CommitMode.Immediate in SQL Server CE using Entity Framework是否可以使用实体框架在 SQL Server CE 中实现 CommitMode.Immediate
【发布时间】:2016-10-12 07:21:03
【问题描述】:

是否可以使用实体框架调整 SQL Server Compact Edition 4.0 版连接参数,以便使用 CommitMode.Immediate 参数强制提交,如此处所述 https://stackoverflow.com/a/7342721/5529867https://stackoverflow.com/a/8687410/5529867

  • SQL Server CE 版本:4.0
  • 实体框架:6.1.3
  • EntityFramework.SQLServerCompact:6.1.3

【问题讨论】:

    标签: c# entity-framework sql-server-ce


    【解决方案1】:

    不,这只能通过原始 ADO.NET 实现(或者您控制 DbTransaction,可以使用 EF6 - https://msdn.microsoft.com/en-us/data/dn456843.aspx#existing

     using (SqlCeConnection conn =
        new SqlCeConnection(@"Data Source=C:\data\AdventureWorks.sdf;"))
     {
         conn.Open();
         using (SqlCeTransaction tx = conn.BeginTransaction(IsolationLevel.ReadCommitted))
         {
             using (var context =  new BloggingContext(conn, contextOwnsConnection: false)) 
             { 
                context.Database.UseTransaction(tx); 
                var query =  context.Posts.Where(p => p.Blog.Rating >= 5); 
                foreach (var post in query) 
                { 
                   post.Title += "[Cool Blog]"; 
                } 
                context.SaveChanges(); 
            }
            tx.Commit(CommitMode.Immediate); 
         }
    }
    

    【讨论】:

    • 谢谢。因此,我将调整 Flush-Interval 参数。
    • 这不会强制立即刷新,我已经更新了我的回复 - 也可以在此处查看我的博客文章:erikej.blogspot.dk/2013/05/…
    • 埃里克。我刚刚发现 EF 事务提交是没有参数的函数(所以 Commit,Immediate)不能被传递。我想知道 SQL CE 如何提交事务。它是立即提交还是推迟提交。
    • 把msdn链接和我的博文代码结合起来,就可以使用commitmode.Immediate
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多