C# 实体框架插入不起作用
我学习了EF4.0的一些基本知识,最近升级到EF6.0。我似乎无法让一个简单的插入工作。“ent.AddtoImage()”在6.0版中是否已被弃用?我四处寻找,但找不到答案C# 实体框架插入不起作用,c#,entity-framework,C#,Entity Framework,我学习了EF4.0的一些基本知识,最近升级到EF6.0。我似乎无法让一个简单的插入工作。“ent.AddtoImage()”在6.0版中是否已被弃用?我四处寻找,但找不到答案 using (evEntities ent = new evEntities()) { Image insertImg = new Image(); insertImg.TypeID = "a"; ent.AddtoImage(insertI
using (evEntities ent = new evEntities())
{
Image insertImg = new Image();
insertImg.TypeID = "a";
ent.AddtoImage(insertImg);
ent.SaveChanges();
}
我在AddtoImage下面有一条红色的曲线
编辑:这是一张图片-
是的
beacause事件仅在using语句(下一个块)的范围内有效
当你错过{}时,下一个blcock就是下一个语句,它是
Image insertImg = new Image ();
在该行之后,事件被释放,变量无效
使用后将整条线用大括号括起来,使其成为一个块
using (evEntities ent = new evEntities()) {
....rest of your code
}
假设图像是EF生成的实体,您可以使用
ent.Images.Add(insertImg);
在EF6中,然后是代码的其余部分。试试这个
evEntities.Entry<Image>(ent).State = EntityState.Added;
ent.SaveChanges();
eventies.Entry(ent.State=EntityState.Added;
SaveChanges();
或
eventies.Set().Add(ent);
SaveChanges();
对不起,我忘了大括号。我实际上有很多其他的代码,并试图简化。但是,是的,我的代码中有大括号/范围。那么AddToImage(insertImg)应该有用吗?不知道,我的水晶球坏了。我不知道这个方法从何而来,因为您显然不喜欢给出任何相关的代码。即使在EF 4中,我也找不到AddTOImage方法的引用。。。。或者在整个互联网上。又晚又累。是的,你说得对,我本应该发布得更好。非常感谢。这是“Addto”的用法,EF6似乎不支持它。这里是ref:---Insert示例使用AddtoEmp
evEntities.Set<Image>().Add(ent);
ent.SaveChanges();