我在訪問類中的實體模型對象時遇到了問題。這是我第一次使用Visual Studio 2012,我在考慮可能會有與此問題相關的一些變化。不知何故,當我訪問實體模型對象時,只有表模型被列出。我無法訪問該對象的任何屬性或方法。Visual Studio 2012中的實體模型問題
我不知道如果我做錯什麼,我做了我以前在Visual Studio 2010中做沒有任何問題的確切的東西。
在此先感謝您的幫助。
我在訪問類中的實體模型對象時遇到了問題。這是我第一次使用Visual Studio 2012,我在考慮可能會有與此問題相關的一些變化。不知何故,當我訪問實體模型對象時,只有表模型被列出。我無法訪問該對象的任何屬性或方法。Visual Studio 2012中的實體模型問題
我不知道如果我做錯什麼,我做了我以前在Visual Studio 2010中做沒有任何問題的確切的東西。
在此先感謝您的幫助。
VS2010將默認生成一個基於ObjectContext
的上下文和基於EntityObject
的實體。 VS2012默認生成一個基於DbContext
的上下文和基於POCO的實體。您可以通過在屬性中翻轉「代碼生成策略」來更改默認值。在VS2012中,「Default」將生成ObjectContext
和EntityObject
,而「None」將使用T4模板(默認情況下會生成DbContext
和POCO)。請注意,從「無」到「默認」時,您可能需要刪除T4模板(.tt文件),否則最終可能會有兩組實體 - 基於POCO和EntityObject。
DbContext
是構建在ObjectContext
之上的簡化API,以及POCO實體 - 是現今使用Entity Framework的首選方式。有一些較低級別的東西,你可能無法做DbContext
在這種情況下,你可以下降到ObjectContext
使用IObjectContextAdapter
這樣的:
((IObjectContextAdapter)dbCtx).ObjectContext
感謝您的答案。現在我將堅持'做舊的方式',即使用'ObjectContext'和'EntityObject',因爲我對這種方法很滿意。我將嘗試更多地研究如何使用其他方法,因爲它是使用Entity Framework的首選方式。 –
如果你從頭開始,你可能想看看EF6。從工具角度來看,VS2013預覽版支持EF6,並且VS2012最初隨附的工具有所更換。在此處查找更多詳情http://blog.3d-logic.com/2013/06/08/ef-designer-now-supports-ef6/並在此處:http://blogs.msdn.com/b/adonet/archive /2013/06/26/ef-and-visual-studio-2013-preview.aspx。請注意,新工具支持EF5和EF6,並且它目前是Beta版本。 – Pawel
再次感謝您的回覆。我會盡快檢查出來! :) –
是否使用代碼優先?你可以粘貼DatabaseEntities的代碼嗎? –
另外,如果您首先使用代碼,那麼「公開」可見性聲明的「缺失」屬性是什麼? –
不,我不使用Code-First,我只是簡單地創建數據庫,然後使用創建的數據庫生成模型。就像我之前說過的那樣,我沒有遇到過任何問題。 –