【发布时间】:2012-12-07 10:13:20
【问题描述】:
此代码有效:
var c = cboCustomer.SelectedItem as Customer;
var t = cboTrailer.SelectedItem as Trailer;
using (var db = new CAPSContainer())
{
db.Attach(c);
db.Attach(t);
c.Trailers.Remove(t);
db.DeleteObject(t);
db.SaveChanges();
}
但我不明白为什么我不能这样做:
db.Attach(t);
db.DeleteObject(t);
db.SaveChanges();
如果我尝试,我会得到:
“CAPSContainer.Trailers”中的实体参与“CustomerTrailer”关系。找到 0 个相关的“客户”。预计有 1 个“客户”。
我首先使用的是 EF 5.0 模型,这里是 edmx 图表的一部分:
我很难理解为什么,请帮忙。
更新 1(根据 Boomer 的建议):
using (var db = new CAPSContainer())
{
db.Attach(c);
//db.Attach(t);
//c.Trailers.Remove(t);
db.DeleteObject(t);
db.SaveChanges();
}
返回:
无法删除该对象,因为它在 ObjectStateManager 中找不到。
【问题讨论】:
-
(stackoverflow.com/questions/4787652/…) 显示实体框架中的简单删除
-
@Boomer 不幸的是,这就是我要说的,简单的删除会给出错误。
标签: c# linq entity-framework lambda