2013-03-11 36 views

回答

1

edmx文件中沒有程序集名稱。從edmx文件生成的代碼成爲edmx文件所屬項目的一部分,因此成爲爲此項目編譯的程序集的一部分。部分類主要是一種編譯器技巧,當您編譯部分類時,編譯器會將所有部分類合併成一個類,而在程序集中,您將始終只有一個類。

+0

好的,謝謝。所以只要.edmx在同一個Visual Studio項目下,它也在同一個程序集下。我的部分類無法訪問自動生成的屬性(Intellisense不顯示它們),因此它必定是名稱空間的問題。我已經從.edmx CSDL內容 Nuts 2013-03-12 07:49:45

+0

打開爲您的模型生成的cs文件,並從那裏複製使用命名空間。我也見過Intellisense沒有顯示任何內容的情況,即使引用是正確的。要確定你確實缺少引用,你需要編譯你的項目,看看你是否有任何錯誤。 – Pawel 2013-03-12 15:48:12

1

請記住,爲了使部分類能夠工作,所有的部分類必須駐留在同一個Assembly和同一個Namespace中。在你的情況下,假設你的實體數據模型中有一個名爲Foo的類。現在,這個Foo類將成爲您的.edmx文件中的一個部分類。另外,假設你想用一個名爲Bar的附加屬性來擴展這個部分類。您需要做的是在同一個程序集中創建另一個名爲Foo的分部類,或者與包含您的.edmx文件的項目基本相同的項目,然後將新的屬性Bar添加到Foo的部分類實現中。另外,包含Bar屬性的新的部分Foo類將需要駐留在與駐留在.edmx文件中的Foo partial類相同的Namespace中。

我希望這會有所幫助。