C# 实体框架的间歇性问题
我使用的是实体框架6.1版本 我正在使用实体框架执行批量插入操作。我在C# 实体框架的间歇性问题,c#,entity-framework,sql-server-2008,C#,Entity Framework,Sql Server 2008,我使用的是实体框架6.1版本 我正在使用实体框架执行批量插入操作。我在DbContext中遇到间歇性错误: 对象引用未设置为db上下文的“对象”实例 这是我的密码: public class ApiTimingDataProvider : IApiTimingDataProvider { private ApiTimingDbContext _apiDbContext; public ApiTimingDataProvider(ApiTimingDbContex
DbContext
中遇到间歇性错误:
对象引用未设置为db上下文的“对象”实例
这是我的密码:
public class ApiTimingDataProvider : IApiTimingDataProvider
{
private ApiTimingDbContext _apiDbContext;
public ApiTimingDataProvider(ApiTimingDbContext apiDbContext)
{
if (apiDbContext == null)
throw new ArgumentNullException("ApiDbContext is Null");
_apiDbContext = apiDbContext;
}
public void InsertApiData(List<ApiTimingModel> apiModelList)
{
try
{
using (var ctx = _apiDbContext)
{
using (var transactionScope = new TransactionScope())
{
// some stuff in dbcontext
ctx.Database.CommandTimeout = 600;
ctx.BulkInsert(apiModelList);
ctx.SaveChanges();
transactionScope.Complete();
}
}
}
catch (Exception ex)
{
throw ex;
}
}
}
公共类ApiTimingDataProvider:IApiTimingDataProvider
{
私有ApiTimingDbContext_apiDbContext;
公共ApiTimingDataProvider(ApiTimingDbContext apiDbContext)
{
if(apiDbContext==null)
抛出新ArgumentNullException(“ApiDbContext为Null”);
_apiDbContext=apiDbContext;
}
public void InsertApiData(列表apiModelList)
{
尝试
{
使用(var ctx=_apiDbContext)
{
使用(var transactionScope=new transactionScope())
{
//dbcontext中的一些东西
ctx.Database.CommandTimeout=600;
ctx.BulkInsert(apiModelList);
ctx.SaveChanges();
transactionScope.Complete();
}
}
}
捕获(例外情况除外)
{
掷骰子;
}
}
}
有人能告诉我发生异常的原因吗?您的代码只工作一次,之后外部
使用处理\u apiDbContext
。如果使用使用每次都需要新的,以更新它。但是看起来您正在处理从外部传入的某些dbcontext。因此您应该使用
移动外部。您的代码只工作一次,之后外部使用
处理\u apiDbContext
。如果使用
使用
,则每次都需要新的
来更新它。但是,看起来您正在处理从外部传入的某些dbcontext。因此,您应该使用
删除外部>.