我正在使用動態數據與實體框架模型。 如果我在1個EF模型中使用它,那麼這就像一個魅力。動態數據與多個實體框架模型
但現在我需要在我的動態數據項目中使用多個EF模型,並且在註冊過程中收到錯誤。
代碼:
public static void RegisterRoutes(RouteCollection routes)
{
var model1 = new MetaModel();
model1.RegisterContext(() =>
{
return ((IObjectContextAdapter)new Model1Entities()).ObjectContext;
}, new ContextConfiguration() { ScaffoldAllTables = true });
routes.Add(new DynamicDataRoute("model1/{table}/{action}.aspx")
{
Constraints = new RouteValueDictionary(new { action = "List|Details|Edit|Insert" }),
Model = model1
});
var model2 = new MetaModel();
model2.RegisterContext(() =>
{
return ((IObjectContextAdapter)new Model2Entities()).ObjectContext;
}, new ContextConfiguration() { ScaffoldAllTables = true });
routes.Add(new DynamicDataRoute("model2/{table}/{action}.aspx")
{
Constraints = new RouteValueDictionary(new { action = "List|Details|Edit|Insert" }),
Model = model2
});
}
在運行時我收到時,他的執行model2.RegisterContext錯誤。
錯誤:
Item has already been added. Key in dictionary: 'System.Data.Objects.ObjectContext' Key being added: 'System.Data.Objects.ObjectContext'
所以對於MODEL1他可以註冊上下文但MODEL2他擋在這個錯誤。
如果你知道如何解決這個問題,請指教!
Stefan,我在這裏也發佈了我的解決方案。希望這會在你身邊! –
Tom,您使用什麼.net框架版本? 有趣的是,它適用於Db首先,我使用Code First。 – StefanG
我正在使用.net 4.5和EF 5.當我嘗試使用時,它無法使用較低的版本。 –