無法使用數據註釋

c# entity-framework-core

所以在這裡我們試圖在遊戲開始之前處理EF7並且我遇到了我只能稱之為瘋狂的事情。

在EF6中我使用了相當多的註釋,我試圖將其轉移到EF7中,根據UnicornStore項目,這是完全有效的,但是我遇到了一個問題,其中visual studio 2015抱怨我沒有參考到System.ComponentModel.DataAnnotations程序集。很公平,我添加了對程序集的引用,現在我從DNX Core 5.0獲得以下內容:

Error   CS0234  The type or namespace name 'DataAnnotations' does not exist in the namespace 'System.ComponentModel' (are you missing an assembly reference?) Lib.DNX Core 5.0

對於我的生活,我無法弄清楚這裡發生了什麼,因為當我看到UnicornStore作為我的參考時,在project.json中沒有對該程序集的引用,但是項目中有一個引用。 lock.json,據我所知,你不應該編輯那個文件。

最重要的問題是我做錯了什麼?為什麼DNX 4.5.x不會抱怨引用而DNX Core 5.0呢?

一般承認的答案

.Net 4.6(也稱為vNext)Web項目依賴於Microsoft.AspNet.Mvc 。這引入了一個很大的依賴樹,數據註釋在Microsoft.DataAnnotations包下

在項目中使用Data註釋使用Microsoft.DataAnnotations代替System.ComponantModel.DataAnnotations


熱門答案

我恰好在beta8中遇到了這個問題。我通過結合這裡給出的其他答案和註釋來解決它,以便為DNX 4.5.1和DNX Core 5.0提供交叉編譯:

"frameworks": {
  "dnx451": {
    "frameworkAssemblies": {
      "System.ComponentModel.DataAnnotations": "4.0.0.0"
    },
    "dependencies": {
    }
  },
  "dnxcore50": {
    "dependencies": {
      "System.ComponentModel.Annotations": "4.0.11-beta-23409"
    }
  }
}



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因