1

我真的为这个标题而苦苦挣扎,所以希望我能在这里更好地描述它!

我们使用实体框架作为我们的 ORM 和 Ninject 作为我们的依赖注入框架。我们使用 Ninject 将 DbFactory 和 UnitOfWork 绑定为单例

Bind<IDbFactory>().To<DbFactory>().InSingletonScope();
Bind<IUnitOfWork>().To<UnitOfWork>().InSingletonScope();

现在,在 MVC 项目中这很好用,但我们还想使用 API 将一些数据发送回服务器,然后刷新页面。EF 需要大约 10 分钟来决定是否要再次查询数据库以检索数据。

除了禁用缓存之外,我唯一的理论是 Ninject 正在创建一个对象供 MVC 项目使用,另一个供 API 使用。所以我的问题;我的理论是否正确,如果是,我该如何克服?

编辑:示例模型

public class Property
{ 
    public int Id { get; set; }
    public virtual ICollection<PropertyPhoto> PropertyPhotos { get; set; }
    // Blah blah everything else
}

public class PropertyPhoto
{
    public int Id { get; set; }
    // Blah blah everything else
}

现在,API 正在PropertyPhoto通过其存储库更新模型,而 mvc 项目正在使用该Property模型

4

1 回答 1

0

我接受了 Steven 的建议并删除了单例范围,但这阻止了我从数据库中删除实体,最后我使用了

Bind<IDbFactory>().To<DbFactory>().InThreadScope();
Bind<IUnitOfWork>().To<UnitOfWork>().InThreadScope();
于 2013-05-07T11:16:28.810 回答