2013-07-04 60 views
4

在實體框架(數據庫優先)我試圖添加一些數據註釋到創建的類。類型X與導入類型X configts

一般:我有類X創建:

namespace Info 
{ 
    using System; 
    using System.Collections.Generic; 

    public partial class X 
    { 
     public string SomeProperty {get; set;} 
     ... 
    } 
} 

我想物業SomePropertyApp_Code/Metadata序列化到JSON因此,當我創建類X.cs被忽略,我添加一些元數據:

​​

上面我已經手動將名稱空間從Info.App_Code.Metadata更改爲Info以使部分類匹配。

但是在我使用的是X類所有的地方我已經警告

The type Info.X in '.../Info/App_Code/Metadata/X.cs ' conflicts with the imported type Info.X in '.../Info/X.cs'. Using the type defined in '.../Info/App_Code/Metadata/X.cs '

我預計雙方部分類將合併但所有事件都指的是空的一個X級。

有人知道我失蹤了嗎?

回答

5

根據您正在開發的應用程序類型,將代碼放入App_Code文件夾可能是錯誤的,因爲它對內容有一定影響。請參閱this other question

嘗試將源文件移出App_Code,並確保其「Build action」屬性窗口中的「Compiled」。

4

引用同一類的多個部分類定義必須全部存在於一個程序集中。在編譯過程中的上例中,元數據應該被烘焙到類中,並且在編譯之後,類是完整的,包括所有的部分。部分類是將同一類的定義拆分爲多個文件的一種手段。

參見here用於詳盡解釋,但注意以下幾點:

意味着是同一類型的所有份偏型定義必須在相同的組件和同一模塊(.exe或限定。 dll文件)。部分定義不能跨越多個模塊。

This鏈路這裏解釋

一般而言,ASP.NET會爲每個應用程序的目錄的組件(如App_Code文件)和一個用於主目錄。

對於你的情況,雖然部分類是在同一個項目相同的命名空間他們沒有被編譯成相同的程序集。

+0

但是這兩個類都在一個項目中,只在不同的文件夾中。 –

+0

@pawlakppp它是什麼類型的項目? – qujck

+0

Asp.net項目 –

0

刪除項目bin文件夾,清理並重建項目

0

我有同樣的問題。能夠用2種方法解決這個問題。 1.重命名App_Code文件夾 2.將.cs文件移動到項目的根目錄中。

這兩種方法都有效。

相關問題