更新操作在实体框架中显示错误

本文关键字:显示 错误 框架 实体 操作 更新 | 更新日期: 2023-09-27 18:11:04

我正在尝试使用实体框架更新两个表,但其显示错误:"实体类型<>f__AnonymousType3 ' 4不是当前上下文模型的一部分"。

protected void Button3_Click(object sender, EventArgs e)
    {
        var obj = Convert.ToInt32(TextBox5.Text);
        var v = (from m in de.t1
                 join n in de.t2
                 on m.Id equals n.id
                 where m.Id == obj
                 select new { m.Name,m.Age,m.Address,n.salary}).FirstOrDefault();
        if (v != null)
        {
            t1 t = new t1
            {
                Name = TextBox1.Text,
                Age = Convert.ToInt32(TextBox2.Text),
                Address = TextBox3.Text,
                t2 = new t2
                {
                    salary = Convert.ToInt64(TextBox4.Text)
                }
            };
        de.Entry(v).State = System.Data.Entity.EntityState.Modified;
        de.SaveChanges();
        }
    }

更新操作在实体框架中显示错误

v不是您的实体之一。你是说de.Entry(t).State吗?

您可以通过利用强类型集合而不是对所有内容调用db.Entry()来避免这种错误:

    if (v != null)
    {
        t1 t = new t1
        {
            Name = TextBox1.Text,
            Age = Convert.ToInt32(TextBox2.Text),
            Address = TextBox3.Text,
            t2 = new t2
            {
                salary = Convert.ToInt64(TextBox4.Text)
            }
        };
        // de.Entry(t).State = System.Data.Entity.EntityState.Added;
        de.t1.Add(t);
        de.SaveChanges();
    }