iT邦幫忙

0

ASP.NET MVC5 問題

  • 分享至 

  • xImage

寫登入註冊的部分,測試註冊功能時,資料輸入完畢按下註冊送出資料後會出現以下錯誤訊息。

System.Data.Entity.Infrastructure.DbUpdateException: 'Unable to update the EntitySet 'tMember' because it has a DefiningQuery and no element exists in the element to support the current operation.'
內部例外狀況
UpdateException: Unable to update the EntitySet 'tMember' because it has a DefiningQuery and no element exists in the element to support the current operation.

看更多先前的討論...收起先前的討論...
ddx iT邦研究生 4 級 ‧ 2023-08-15 17:21:28 檢舉
是不是資料表沒有加主鍵阿?
HenryC iT邦新手 5 級 ‧ 2023-08-16 10:26:17 檢舉
我確定有有主鍵欸,還有什麼可能啊?
HenryC iT邦新手 5 級 ‧ 2023-08-16 11:23:00 檢舉
已解決,原本我用A資料庫後來改用B資料庫,
而B資料庫的table我是用
select * into B.dbo.tMember from A.dbo.tMember
因此原本B資料庫中的table沒有主鍵,
雖然後來有加上,但是mvc專案內的.edmx檔沒有更新,
所以造成看起來有主鍵,但程式真的再抓的資料是沒有主鍵的。
HenryC iT邦新手 5 級 ‧ 2023-08-16 11:24:06 檢舉
另外想請這以上這段,有比較專業的解釋方式嗎,感覺講的好口語,好菜鳥,該怎麼修正呢~
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
allenlwh
iT邦高手 1 級 ‧ 2023-08-15 17:53:17
最佳解答
tMember int IDENTITY (1,1) NOT NULL
看更多先前的回應...收起先前的回應...
HenryC iT邦新手 5 級 ‧ 2023-08-16 10:27:10 檢舉

https://ithelp.ithome.com.tw/upload/images/20230816/20160676VDshPXOW9R.png

HenryC iT邦新手 5 級 ‧ 2023-08-16 10:27:36 檢舉

可是我原本就有主鍵了欸

HenryC iT邦新手 5 級 ‧ 2023-08-16 11:24:14 檢舉

已解決,原本我用A資料庫後來改用B資料庫,
而B資料庫的table我是用
select * into B.dbo.tMember from A.dbo.tMember
因此原本B資料庫中的table沒有主鍵,
雖然後來有加上,但是mvc專案內的.edmx檔沒有更新,
所以造成看起來有主鍵,但程式真的再抓的資料是沒有主鍵的。

HenryC iT邦新手 5 級 ‧ 2023-08-16 11:24:27 檢舉

另外想請這以上這段,有比較專業的解釋方式嗎,感覺講的好口語,好菜鳥,該怎麼修正呢~

allenlwh iT邦高手 1 級 ‧ 2023-08-16 11:50:21 檢舉

簡單來說,應該是手動變更資料庫後,沒有手動更新edmx檔;或是說沒有執行從資料庫更新模型 (Update Model from Database)。

我找了幾篇文章,供您參考:

執行 Entity Framework 的「從資料庫更新模型」為何不更新
Entity Framework Database first 手動更新
Entity Framework edmx檔案,不透過從資料庫更新模型更新DB新增加的欄位

1
alien663
iT邦研究生 3 級 ‧ 2023-08-16 08:47:54

我直接用Edge的Bin Chat,把你的錯誤訊息複製貼上,他是這樣回答我的

    以下是我找到的資訊:

    這個錯誤通常是因為以下原因之一:實體集從資料庫檢視中映射、自訂資料庫查詢、資料庫表沒有主鍵1。
    請確認您的資料表是否有主鍵1。
    如果您無法新增主鍵,請參考 Stack Overflow 上的這篇文章。
    希望這些資訊能對您有所幫助!
HenryC iT邦新手 5 級 ‧ 2023-08-16 10:27:52 檢舉

https://ithelp.ithome.com.tw/upload/images/20230816/201606768WDFMQ0I4p.png

HenryC iT邦新手 5 級 ‧ 2023-08-16 10:28:25 檢舉

可是我原本就有主鍵了/images/emoticon/emoticon02.gif

HenryC iT邦新手 5 級 ‧ 2023-08-16 11:24:20 檢舉

已解決,原本我用A資料庫後來改用B資料庫,
而B資料庫的table我是用
select * into B.dbo.tMember from A.dbo.tMember
因此原本B資料庫中的table沒有主鍵,
雖然後來有加上,但是mvc專案內的.edmx檔沒有更新,
所以造成看起來有主鍵,但程式真的再抓的資料是沒有主鍵的。

我要發表回答

立即登入回答