西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁(yè)西西教程數(shù)據(jù)庫(kù)教程 → LINQ to SQL 無(wú)法更新EntitySet的問(wèn)題

LINQ to SQL 無(wú)法更新EntitySet的問(wèn)題

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:本站整理時(shí)間:2010/11/30 11:40:18字體大小:A-A+

作者:佚名點(diǎn)擊:462次評(píng)論:0次標(biāo)簽: LINQtoSQL SqlServer

  • 類(lèi)型:數(shù)據(jù)庫(kù)類(lèi)大。1.7M語(yǔ)言:英文 評(píng)分:5.0
  • 標(biāo)簽:
立即下載
無(wú)法更新 EntitySet“...”,因?yàn)樗幸粋(gè) DefiningQuery,而 <ModificationFunctionMapping> 元素中沒(méi)有支持當(dāng)前操作的 <DeleteFunction> 元素。


出現(xiàn)上述問(wèn)題的原因,往往是因?yàn)橹麈I的關(guān)系。

在SqlServer中你允許設(shè)計(jì)一張沒(méi)有主鍵標(biāo)識(shí)(Primary key)的數(shù)據(jù)表,但是在定義entity class的屬性時(shí),必須至少包含一個(gè)的主鍵屬性(IsPrimaryKey=true)。這不單是數(shù)據(jù)庫(kù)設(shè)計(jì)標(biāo)準(zhǔn)的要求,DataContext對(duì)象會(huì)使用PrimaryKey屬性值作為實(shí)體對(duì)象的唯一標(biāo)識(shí),用來(lái)進(jìn)行實(shí)體對(duì)象的生命周期管理。(因此主鍵是必須的)


當(dāng) LINQ to SQL 保存對(duì)數(shù)據(jù)庫(kù)所做的更改時(shí),只會(huì)檢索并持久保存您標(biāo)識(shí)為列的那些成員。 不具有此屬性的成員被假定為非持久的,且不會(huì)被提交以進(jìn)行插入或更新。(這就是為什么當(dāng)沒(méi)有主鍵的時(shí)候,查詢沒(méi)有問(wèn)題,而增刪改會(huì)報(bào)錯(cuò)的原因。


原因我們搞清楚了,可是在項(xiàng)目中有時(shí)候確實(shí)難免會(huì)有無(wú)主鍵,該如何解決呢?研究中。。。。

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


又進(jìn)一步試驗(yàn)了一下,發(fā)現(xiàn)組合主鍵還是可以用的。可見(jiàn)這個(gè)問(wèn)題是你必須有主鍵,沒(méi)有主鍵就會(huì)報(bào)錯(cuò)。這樣的話,出現(xiàn)問(wèn)題的時(shí)候還是少之又少的。

目前的權(quán)益之計(jì)就是如果真的要對(duì)這樣的表進(jìn)行增刪改操作,就用存儲(chǔ)過(guò)程去完成了。但總是在想難道linq就真的沒(méi)有法子了嗎?

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門(mén)評(píng)論

    最新評(píng)論

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

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)