我真的標題掙扎在這一個,所以希望我會在這裏形容它好多了!Ninject單和實體框架與MVC和API
我們使用實體框架作爲我們的ORM和Ninject作爲我們的依賴注入框架。我們與Ninject
Bind<IDbFactory>().To<DbFactory>().InSingletonScope();
Bind<IUnitOfWork>().To<UnitOfWork>().InSingletonScope();
結合我們DbFactory和的UnitOfWork作爲一個單身現在,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
}
,而MVC項目使用Property
模型
您是否調試過該項目。有很多地方可能會發生緩存。瀏覽器,HTTP代理,IIS,.net,ASP.NET MVC,最後是EF。嘗試並追蹤請求實際觸及的位置。 – Aron 2013-05-07 08:48:05
這不是瀏覽器 - 我們不使用代理 - 我們使用IIS Express。我將用示例模型編輯我的答案。 – Matt 2013-05-07 08:56:40
「我們將UnitOfWork綁定爲一個單身人士」。這可能會成爲一個問題。根據定義,一個工作單元不是單件,而是每個請求或類似的東西。請看看[這篇相關文章](http://stackoverflow.com/questions/3266295/net-entity-framework-and-transactions/3266481#3266481)。 – Steven 2013-05-07 09:47:53