Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
741 views
in Technique[技术] by (71.8m points)

c# - Error on using TransactionScope in EF4 & SQL Compact 4

using (TransactionScope scope = new TransactionScope())
using (var context = new dwfEntities())
{
  var field = (from x in context.DynFields where x.Id == id select x).First();

  //delete defaults
  foreach (var item in from x in context.DynFieldDefaults where x.DynField_Id == id select x)
  {
    context.DeleteObject(item);
  }
  context.SaveChanges();

  //delete field
  context.DeleteObject(field);
  context.SaveChanges();

  //commit
  scope.Complete();
}

The code throws "The connection object can not be enlisted in transaction scope"

Does SQL CE 4 support TransactionScope ? if not, is there any workaround so I can safely delete objects ?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

in case SQL CE does not support transaction scope, you can surely use the normal transactional approach, connection.BeginTransaction then transaction.Commit or Rollback...


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...