就下载 —— 安全下载、无毒手机软件、绿色软件官方下载网站最近更新|下载排行|热门标签|收藏本站

您现在的位置是:就下载 > IT资讯 > 软件教程 > LINQ to SQL 无法更新EntitySet的问题

LINQ to SQL 无法更新EntitySet的问题

时间:2014-10-17 09:53:58 来源: 复制分享

无法更新 EntitySet“...”,因为它有一个 DefiningQuery,而 <ModificationFunctionMapping> 元素中没有支持当前操作的 <DeleteFunction> 元素。


出现上述问题的原因,往往是因为主键的关系。

在SqlServer中你允许设计一张没有主键标识(Primary key)的数据表,但是在定义entity class的属性时,必须至少包含一个的主键属性(IsPrimaryKey=true)。这不单是数据库设计标准的要求,DataContext对象会使用PrimaryKey属性值作为实体对象的唯一标识,用来进行实体对象的生命周期管理。(因此主键是必须的)


当 LINQ to SQL 保存对数据库所做的更改时,只会检索并持久保存您标识为列的那些成员。 不具有此属性的成员被假定为非持久的,且不会被提交以进行插入或更新。(这就是为什么当没有主键的时候,查询没有问题,而增删改会报错的原因!)


原因我们搞清楚了,可是在项目中有时候确实难免会有无主键,该如何解决呢?研究中。。。。

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


又进一步试验了一下,发现组合主键还是可以用的。可见这个问题是你必须有主键,没有主键就会报错。这样的话,出现问题的时候还是少之又少的。

目前的权益之计就是如果真的要对这样的表进行增删改操作,就用存储过程去完成了。但总是在想难道linq就真的没有法子了吗?

上一篇:windows桌面主题exe文件制作 Theme主题文件分析

本文地址:软件教程 >> http://www.9xz.net/it/ruanjianjiaocheng/20167.html

下一篇:sql2000恢复备份的数据据时出现错误

  • 打印
推荐阅读
热门专题
推荐内容
热点内容