日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EntiyFramework :Update model from database引起的两个问题

發布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EntiyFramework :Update model from database引起的两个问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

EntiyFramework一大特點就是Code first,但難免有時候因特殊原因需要Update model from database。此次使用該功能時遇到兩個問題,且記之。

[問題一]

  Error 3027: No mapping specified for the following EntitySet/AssociationSet - XXXXXXX.

[起因]

   在數據庫新建一張表,并使用Update model from database功能同步到EF, Add Association后,發生該錯誤。

[說明]

   XXXXXXX代表關系名稱,例如一個外鍵關系:FK_Bug_TestCase。

[原因]

  在EF中Add Association時,.edmx文件并未被同步創建。

[解決方案]

  Step1:右鍵.edmx文件,以XML Editor方式打開,如下圖:

  Step2:ctrl+F 搜索,找到名稱為XXXXXXX的Asscoiation節點,以FK_Bug_TestCase為例,并添加<ReferentialConstraint></ReferentialConstraint>節點,并設置Principal的Role屬性為主鍵表名,子節點PropertyRef的Name屬性為主鍵表用作外鍵的字段名;設置Dependent的Role屬性為外鍵表名,? 子節點PropertyRef的Name為外鍵字段名。如下圖所示:

  Step3:保存即可。

?

[問題二]

?  Unable to update the EntitySet 'Bug' because it has a DefiningQuery and no <InsertFunction> element exists in the <ModificationFunctionMapping> element to support the current operation.

[起因]

  在問題一已解決的前提下,對數據庫進行更新是引起。

[原因]

  使用Update model from database功能時,EF在.edmx文件里創建了< DefiningQuery ></ DefiningQuery >節點。DefiningQuery 節點的作用,MSDN解釋如下:A defining query is commonly used to provide functionality similar to that provided by a database view, but the view is defined in the model, not the database.

[解決方案]

  Step1:同問題一Step1,以XML Editor方式打開.edmx文件。

  Step2:ctrl+F 搜索,找到名稱為DefiningQuery的節點(其實一眼就可以看出來它所在EntitySet跟別的EntitySet的不同,用的時候就看到了),并刪除。此外對其所在EntitySet節點的Store:Schema屬性的Store:命名空間去掉,并刪除Store:Name屬性。如下圖所示:

  修改前:

修改后:

  Step3:保存即可。

?

轉載于:https://www.cnblogs.com/yuanlb/archive/2013/04/18/3029238.html

總結

以上是生活随笔為你收集整理的EntiyFramework :Update model from database引起的两个问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。