gpt4 book ai didi

c# - Entity Framework 删除对象问题

转载 作者:可可西里 更新时间:2023-11-01 07:49:53 25 4
gpt4 key购买 nike

我收到“无法删除该对象,因为在 ObjectStateManager 中找不到它”。同时删除对象。

这是代码;

//first i am filling listview control.
private void Form1_Load(object sender, EventArgs e)
{
FirebirdEntity asa = new FirebirdEntity();

ObjectQuery<NEW_TABLE> sorgu = asa.NEW_TABLE;

foreach (var item in sorgu)
{
ListViewItem list = new ListViewItem();
list.Text = item.AD;
list.SubItems.Add(item.SOYAD);
list.Tag = item;
listView1.Items.Add(list);

}
//than getting New_table entity from listview's tag property.
private void button3_Click(object sender, EventArgs e)
{

using (FirebirdEntity arama = new FirebirdEntity())
{

NEW_TABLE del = (NEW_TABLE)listView1.SelectedItems[0].Tag;
arama.DeleteObject(del);
arama.SaveChanges();


}}

最佳答案

您需要attach ObjectContext 的对象。尝试:

NEW_TABLE del = (NEW_TABLE)listView1.SelectedItems[0].Tag;
arama.Attach(del);
arama.DeleteObject(del);
arama.SaveChanges();

附加对象由 ObjectContext 跟踪。这是执行删除和更新所必需的。您可以阅读更多关于 attaching objects 的信息在 MSDN 上。

编辑以阐明附加/分离:

private void Form1_Load(object sender, EventArgs e) {
FirebirdEntity asa = new FirebirdEntity();

ObjectQuery<NEW_TABLE> sorgu = asa.NEW_TABLE;
foreach (var item in sorgu) {
asa.Detach(item);
// add to listView1
}
}

此外,您应该将 ObjectContext 的使用包装在 using block 中。

关于c# - Entity Framework 删除对象问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1217052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com