我有一個生成上下文的EDMX模型。 現在我生成的自追蹤實體庫是單獨的項目,並從EDMX模型中引用此項。 還要將上下文中的正確名稱空間設置爲與實體相同的名稱空間。找不到WCF DataService EF實體
現在使用這個工作,除了當我嘗試創建一個WCF數據服務與此上下文。
因此,只需創建新的ObjectContext並直接使用它就可以正常工作。
不過話說引用的語境+模型lib和實體LIB加載
服務器遇到錯誤處理請求的服務時,我碰到下面的錯誤。異常消息爲'Value cannot be null. Parameter name: key'. See server logs for more details. The exception stack trace is:
現在我發現,這可以用與外部實體lib和修復數據服務時被覆蓋中的createContext發生
與代碼
收起
System.Data.Metadata.Edm.ItemCollection itemCollection;
if (!context.MetadataWorkspace.TryGetItemCollection
(System.Data.Metadata.Edm.DataSpace.CSSpace, out itemCollection))
{
var tracestring = context.CreateQuery<ClientDataStoreContainer>("ClientDataStoreContainer.DataSet").ToTraceString();
}
return context;
現在錯誤消失,但我得到下一個,那是: Object mapping could not be found for Type with identity 'ClientDataStoreEntities.Data'.
此錯誤發生在.toTraceString
在createcontext
的SSDL文件具有定義類型 收起
<EntitySetMapping Name="DataSet">
<EntityTypeMapping TypeName="IsTypeOf(ClientDataStoreEntities.Data)">
因此具有加載ClientDataStoreEntities.Data類型是,我已經從模型生成的STE庫的名稱空間和類型。
編輯:與
var tracestring = context.CreateQuery<Data>("ClientDataStoreContainer.DataSet").ToTraceString();
它似乎加載所有類型的,但是現在的服務沒有,我可以調用任何方法。 應該有2 DataSet和PublishedDataSet但:
<service xml:base="http://localhost:1377/WcfDataService1.svc/">
−
<workspace>
<atom:title>Default</atom:title>
</workspace>
</service>
是我所得到的。