我有一个问题,我知道是本地的,与事务范围有关的东西,可能是MSDTC(我不太了解它)。为什么TransactionScope使用实体框架导致问题?
其他项目的开发商(相同的代码,一切COMMITED)执行整体解决方案,但是当我试图从数据库中(不总是)得到一些数据,我有以下错误:
The underlying provider failed on EnlistTransaction.
at System.Data.EntityClient.EntityConnection.EnlistTransaction(Transaction transaction)
at System.Data.Objects.ObjectContext.EnsureConnection()
at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
at System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
at System.Data.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__0[TResult](IEnumerable`1 sequence)
at System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable`1 query, Expression queryRoot)
at System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[S](Expression expression)
at System.Linq.Queryable.First[TSource](IQueryable`1 source, Expression`1 predicate)
如果我评论使用的事务范围,完整()和一切,它按预期工作。
你有过这个问题吗?
编辑:
抛出这个错误是很简单的东西,比如查询:
var entity = Entities.EntityX.First(p => p.ID == id);
编辑,解决了:
服务器的LMHOSTS已经过时。
你能写更多关于什么导致问题的东西吗? – kubal5003 2012-01-11 13:38:51
@ kubal5003抱歉,但有很长一段时间,我不记得了。 =/ – 2012-01-12 02:42:59