0

我在訪問類中的實體模型對象時遇到了問題。這是我第一次使用Visual Studio 2012,我在考慮可能會有與此問題相關的一些變化。不知何故,當我訪問實體模型對象時,只有表模型被列出。我無法訪問該對象的任何屬性或方法。Visual Studio 2012中的實體模型問題

Intellisense example

我不知道如果我做錯什麼,我做了我以前在Visual Studio 2010中做沒有任何問題的確切的東西。

在此先感謝您的幫助。

+0

是否使用代碼優先?你可以粘貼DatabaseEntities的代碼嗎? –

+0

另外,如果您首先使用代碼,那麼「公開」可見性聲明的「缺失」屬性是什麼? –

+0

不,我不使用Code-First,我只是簡單地創建數據庫,然後使用創建的數據庫生成模型。就像我之前說過的那樣,我沒有遇到過任何問題。 –

回答

2

VS2010將默認生成一個基於ObjectContext的上下文和基於EntityObject的實體。 VS2012默認生成一個基於DbContext的上下文和基於POCO的實體。您可以通過在屬性中翻轉「代碼生成策略」來更改默認值。在VS2012中,「Default」將生成ObjectContextEntityObject,而「None」將使用T4模板(默認情況下會生成DbContext和POCO)。請注意,從「無」到「默認」時,您可能需要刪除T4模板(.tt文件),否則最終可能會有兩組實體 - 基於POCO和EntityObject。

DbContext是構建在ObjectContext之上的簡化API,以及POCO實體 - 是現今使用Entity Framework的首選方式。有一些較低級別的東西,你可能無法做DbContext在這種情況下,你可以下降到ObjectContext使用IObjectContextAdapter這樣的:

((IObjectContextAdapter)dbCtx).ObjectContext 
+0

感謝您的答案。現在我將堅持'做舊的方式',即使用'ObjectContext'和'EntityObject',因爲我對這種方法很滿意。我將嘗試更多地研究如何使用其他方法,因爲它是使用Entity Framework的首選方式。 –

+0

如果你從頭開始,你可能想看看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

+0

再次感謝您的回覆。我會盡快檢查出來! :) –