我正在尝试使用实体框架更新两个表但显示错误:“实体类型<> 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();
}
}
答案 0 :(得分:1)
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();
}