2017-04-26 71 views
0

我最近將項目從4.0升級到.NET Framework 4.5。完成此MSDN Migration Guide中提到的所有任務後,我在模型中添加了一些用於支持Oracle數據庫的更改。在發佈模式下避免[NotMapped]屬性的實體框架

的模型如下所示:

namespace KYC_v4.Models 
{ 
    [Serializable] 
    public class Organization 
    { 
     public int OrganizationID { get; set; } 

     [Required] 
     [Display(Name = "OrganizationName", ResourceType = typeof(Resources.Home))] 
     [MaxLength(200)] 
     public string OrganizationName { get; set; } 

     public virtual List<UserGroup> Groups{get;set;} 

     public OrganizationDetails Details { get; set; } 

     public int UserID { get; set; } 

     [NotMapped] 
     [MaxLength(100)] 
     public string membersCount { get; set; } 

     [NotMapped] 
     public List<CheckOrgPermissionViewModel> CheckPermission { get; set; } 
    } 
} 

public class CheckOrgPermissionViewModel { 
    public string Permissiontype { get; set; } 
    public bool isTrue { get; set; } 
} 

它運行正常,當我從Visual Studio調試,但是當我嘗試它託管在IIS服務器上,我得到這個錯誤:

Error screenshot

我迄今爲止嘗試:

  1. 從對方的回答是關於類似的問題,我試圖在上面的文件中刪除參考System.ComponentModel.DataAnnotations; - 沒有工作

  2. 試圖從路徑

    C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.ComponentModel.DataAnnotations\v4.0_4.0.0.0__31bf3856ad364e35\System.ComponentModel.DataAnnotations.dll** 
    

    複製.dll文件到bin目錄應用

  3. 更新了已安裝的NuGet包裝using Update-Package -reinstall -Project "Kyc v4"

以上都不適用於我,如果您想知道 - 我的DbContext錯誤中提到的模型沒有DbSet,所以我的猜測是[NotMapped]屬性被實體框架(6.1.3)忽略了一些原因。我的System.ComponentModel.DataAnnotations參考中的版本爲4.0.0.0,運行時間爲v4.0.30319

任何幫助表示讚賞。謝謝

+0

使用視圖模型(和你的視圖模型應該在一個單獨的文件夾 - 說'ViewModels',所以他們不與EF相關聯) –

+0

如果我這樣做,我可以使用它與常規的莫代爾使用[NotMapped]沒有任何問題?另外,如果是這種情況,爲什麼我能夠在沒有任何問題的情況下運行項目?在iisexpress中調試 – insomniac

+0

停止在視圖中使用'[NotMapped]'和數據模型並使用視圖模型。視圖模型不包含屬於數據模型的屬性。 –

回答

0

最後,我發現,這個問題是與Visual studio IDE本身。由於某些原因,在執行「Clean」/「Build」或「Rebuild」時沒有清除舊引用,因此引用衝突並導致與System.ComponentModel.DataAnnotations.Schema混淆。所以我手動刪除舊文件併發布到空文件夾。

0

你試過把註釋[Key]放在OrganizationID上嗎?

Serializable] public class Organization { 
    [Key] 
    public int OrganizationID { get; set; } } 
+0

我做了,沒有工作 – insomniac