衝突的抓起這個從樣品:EntityFramework.dll的DbContext與Microsoft.data.Entity.CTP的DbContext
protected override ObjectContext CreateDataSource()
{
NorthwindContext nw = new NorthwindContext();
// Configure DbContext before we provide it to the
// data services runtime.
nw.Configuration.ValidateOnSaveEnabled = false;
// Get the underlying ObjectContext for the DbContext.
var context = ((IObjectContextAdapter)nw).ObjectContext;
// Return the underlying context.
return context;
}
修改了它使用的是我有我的項目中的DbContext類。
編輯:澄清,我從一個的DbContext類只是作爲樣品做鑄造:
public class NorthwindContext : DbContext
{
// Use the constructor to target a specific named connection string
public NorthwindContext()
: base("name=NorthwindEntities")
{
// Disable proxy creation as this messes up the data service.
this.Configuration.ProxyCreationEnabled = false;
// Create Northwind if it doesn't already exist.
this.Database.CreateIfNotExists();
}
運行代碼給我就行了鑄造的DbContext的錯誤:
無法投入'MyProject.MyDbContext'類型的對象來鍵入'System.Data.Entity.Infrastructure.IObjectContextAdapter'。
儘管實現的DbContext IObjectContextAdapter:
public class DbContext : IDisposable, IObjectContextAdapter
我已經在這裏發現了幾個問題,對SO和其他谷歌搜索源,但沒有解決方案,我已經找到了工作。
我正在使用實體框架4.2,試圖更新到4.3測試版,我不確定是否卡住。
總體目標是將WCF中的數據作爲DataService提供。
更新:進一步挖掘我發現有什麼之間我的DbContext是(從EntityFramework.dll)和WCF項目(從Microsoft.data.Entity.CTP)
類型的歧義問題不知道如何從這裏得到我想要的...
你能檢查你的NorthwindContext是不是一個ObjectContext本身嗎? – ivowiblo 2012-01-27 20:01:17
@ivowiblo編輯澄清。 – KenEucker 2012-01-27 20:12:02
是否有可能對兩個不同的EntityFramework.dll程序集有兩個不同的引用?看起來你有兩個版本的IObjectContextAdapter,一個不能轉換爲另一個版本。確保你只有一個EntityFramework.dll版本。我認爲WCF數據服務(它是你嘗試的十月CTP)應該與最新版本的EntityFramework一起工作... – Pawel 2012-01-27 23:46:19