我在我的应用中使用了存储库和工作单元模式。我有一个我正在保存的实体:
public void Add(CustomerType entity)
{
DbEntityEntry dbEntityEntry = dataContext.GetEntry(entity);
if(dbEntityEntry.State != EntityState.Detached)
dbEntityEntry.State = EntityState.Added;
else
dbSet.Add(entity);
}
然后调用datacontext SaveChangesAsync()
来提交更改。实体插入数据库中。实体id是一个标识列(生成数据库),它也设置正确。
之后,我尝试再次加载实体。存储库Get(int id)
方法不使用dbSet.Find
,而是向db发送新的SQL语句:
public virtual CustomerType Get(Expression<Func<CustomerType , bool>> filter)
{
return dbSet.Where(filter).FirstOrDefault<CustomerType >();
}
但是,我收到以下异常:The underlying provider failed on Open
。
正常致电Get()
(SaveChanges()
之后没有正常工作。
我错过了什么?