西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁西西教程數據庫教程 → LINQ to SQL 無法更新EntitySet的問題

LINQ to SQL 無法更新EntitySet的問題

相關軟件相關文章發(fā)表評論 來源:本站整理時間:2010/11/30 11:40:18字體大。A-A+

作者:佚名點擊:462次評論:0次標簽: LINQtoSQL SqlServer

  • 類型:數據庫類大。1.7M語言:英文 評分:5.0
  • 標簽:
立即下載
無法更新 EntitySet“...”,因為它有一個 DefiningQuery,而 <ModificationFunctionMapping> 元素中沒有支持當前操作的 <DeleteFunction> 元素。


出現上述問題的原因,往往是因為主鍵的關系。

在SqlServer中你允許設計一張沒有主鍵標識(Primary key)的數據表,但是在定義entity class的屬性時,必須至少包含一個的主鍵屬性(IsPrimaryKey=true)。這不單是數據庫設計標準的要求,DataContext對象會使用PrimaryKey屬性值作為實體對象的唯一標識,用來進行實體對象的生命周期管理。(因此主鍵是必須的)


當 LINQ to SQL 保存對數據庫所做的更改時,只會檢索并持久保存您標識為列的那些成員。 不具有此屬性的成員被假定為非持久的,且不會被提交以進行插入或更新。(這就是為什么當沒有主鍵的時候,查詢沒有問題,而增刪改會報錯的原因。


原因我們搞清楚了,可是在項目中有時候確實難免會有無主鍵,該如何解決呢?研究中。。。。

希望哪位朋友能分享答案。


又進一步試驗了一下,發(fā)現組合主鍵還是可以用的?梢娺@個問題是你必須有主鍵,沒有主鍵就會報錯。這樣的話,出現問題的時候還是少之又少的。

目前的權益之計就是如果真的要對這樣的表進行增刪改操作,就用存儲過程去完成了。但總是在想難道linq就真的沒有法子了嗎?

    相關評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數: 0/500 (您的評論需要經過審核才能顯示)