我試圖使用Breeze 1.2,EF 5.0升級我的項目以使用最新的Breeze/EF。該項目工作正常,但升級後遇到各種問題。BreezeJS:Metadata()將Breeze 1.2升級到1.4並將EF 5.0升級到6.1後出現錯誤
其實,我只需要EF中的一些新功能,所以我試着先將EF從5.0升級到6.1。但是,我無法使用Breeze 1.2安裝EF 6.1。所以,我必須先升級到Breeze 1.4。之後,由於新的命名空間,我必須進行一些更改以重新編譯項目。
第一個問題是路由已經改變。在1.2版,我習慣叫
var manager = new breeze.EntityManager("api/breeze");
但在V1.4,我不得不打電話
var manager = new breeze.EntityManager("breeze/breeze");
然後,我得到了客戶這個錯誤:
GET http://localhost:1476/breeze/breeze/Metadata 500 (Internal Server Error)
在服務器,我得到這個錯誤消息打電話來獲取元數據():
屬性'Id'不能共同被配置爲導航屬性。 屬性必須是有效的實體類型,並且該屬性應具有非抽象的getter和setter 。對於集合屬性,類型 必須實現ICollection,其中T是有效的實體類型。
我在這裏迷路了。我發現這post和這post提到命名空間的變化。但是,我不知道如何解決它在我的情況。例如,在服務器上,我的EntityState來自Breeze.ContextProvider,而不是來自System.Data。
什麼是問題?我的實體(我有很多!)不再有效嗎?我是否必須重新定義所有實體?
任何提示都非常感謝!