ADO.NET实体数据模型删除的问题,在线等待!!【100分】

rczjp 2010-10-02 05:52:56
原帖:
http://topic.csdn.net/u/20101001/17/89c26540-2130-42a6-95e5-0926fd22d133.html

存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。刷新 ObjectStateManager 项。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OptimisticConcurrencyException: 存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。刷新 ObjectStateManager 项。

源错误:


public void DeleteObject(Guid id)
{
var item = new Product() { ProductGuid = id };
db.Product.Attach(item);
db.ObjectStateManager.ChangeObjectState(item, EntityState.Deleted);
db.SaveChanges();
}


=====实体是下面这样,是不是有写法错误===

C# code
[MetadataType(typeof(Product_MetaData))]
public partial class Product
{
public Product()
{
this.ProductGuid = Guid.NewGuid();
this.AddTime = DateTime.Now;
}
}
public class Product_MetaData
{
public int ID { get; set; }
public Guid ProductGuid { get; set; }
public string ProductName { get; set; }
public DateTime AddTime { get; set; }
}




需要说明的是:ID是递增主键,我使用
var item = new Product() { ID = 1 };这样来删除是OK
ProductGuid 这个开始不是主键也不是外键,我设置成了主键也不可以,WHY?




var item = new Product() { ProductGuid = new Guid("220efb48-6284-4ef1-88cc-c1383ba674c6") }; 这样删除不了
和var item = new Product() { ID = 1 };这样来删除却OK

真的很纳闷,怎么会这样呢??

...全文
306 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
winner2050 2010-10-03
  • 打赏
  • 举报
回复
楼主很多分。

rczjp 2010-10-03
  • 打赏
  • 举报
回复
...........
rczjp 2010-10-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 winner2050 的回复:]
楼主很多分。
[/Quote]这个题怎么删除呢?
只要解决问题,分数不是问题呵呵

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧