Entity Framework. The query must be of type ObjectQuery or DbQuery.

sjc0 2015-11-06 03:51:07
...全文
533 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjc0 2015-11-09
  • 打赏
  • 举报
回复
引用 12 楼 starfd 的回复:
db.MainRoll.Update(m=>m.id==id,m=>new MainRoll{state= state})
实验下这样写可以吗?
最新版的实体扩展已经不支持这种写法了
Rajesh_James 2015-11-09
  • 打赏
  • 举报
回复
我只看到了 AddOrUpdate
sjc0 2015-11-09
  • 打赏
  • 举报
回复
这是实体扩展的方法,看博客园上这样弄的,方法没错就是我在执行的时候出差了,不知道啥原因
  • 打赏
  • 举报
回复
db.MainRoll.Update(m=>m.id==id,m=>new MainRoll{state= state})
实验下这样写可以吗?
Rajesh_James 2015-11-09
  • 打赏
  • 举报
回复
引用 10 楼 zhanxueguang 的回复:
[quote=引用 9 楼 zhanxueguang 的回复:] [quote=引用 6 楼 starfd 的回复:] 正常写法不都是
var entity = db.MainRoll.SingleOrDefault(x=>x.EmployeeID == employeeId);
if(entity!=null)
{
    db.Entry(entity).State = EntityState.Modified;
}
db.SaveChanges();
Rajesh_James 2015-11-09
  • 打赏
  • 举报
回复
被带蒙了, 这样:
引用 9 楼 zhanxueguang 的回复:
[quote=引用 6 楼 starfd 的回复:] 正常写法不都是
var entity = db.MainRoll.Where(m=>m.id==id).FirstOrDefault();
if(entity!=null)
{
    db.Entry(entity).State = EntityState.Modified;
}
db.SaveChanges();
把 .Where(m=>m.id==id).FirstOrDefault() 换成 SingleOrDefault(x=>x.EmployeeID == employeeId);[/quote]
Rajesh_James 2015-11-09
  • 打赏
  • 举报
回复
引用 6 楼 starfd 的回复:
正常写法不都是
var entity = db.MainRoll.Where(m=>m.id==id).FirstOrDefault();
if(entity!=null)
{
    entity.state=state;
}
db.SaveChanges();
把 .Where(m=>m.id==id).FirstOrDefault() 换成 SingleOrDefault(x=>x.EmployeeID == employeeId);
sjc0 2015-11-09
  • 打赏
  • 举报
回复
用的是EntityFramework Extend
sjc0 2015-11-09
  • 打赏
  • 举报
回复
这是正常滴写法 现在是扩展,不需要这样写,但是按照例子写出来出错
  • 打赏
  • 举报
回复
正常写法不都是
var entity = db.MainRoll.Where(m=>m.id==id).FirstOrDefault();
if(entity!=null)
{
    entity.state=state;
}
db.SaveChanges();
穷得响叮当 2015-11-09
  • 打赏
  • 举报
回复
sjc0 2015-11-09
  • 打赏
  • 举报
回复
sjc0 2015-11-09
  • 打赏
  • 举报
回复
扩展包都添加的没问题
sjc0 2015-11-09
  • 打赏
  • 举报
回复
引用 27 楼 jenkin1016 的回复:
[quote=引用 17 楼 sjc0 的回复:] [quote=引用 16 楼 jenkin1016 的回复:] db.MainRoll.Where(m=>m.id==id) as DbQuery<MainRoll>,把它转成DbQuery
这样的转换不对吧[/quote] 不知道能不能解决你问题,但转换是可以的呀[/quote] 这个问题还是没有解决!
回.到.未来 2015-11-09
  • 打赏
  • 举报
回复
引用 17 楼 sjc0 的回复:
[quote=引用 16 楼 jenkin1016 的回复:] db.MainRoll.Where(m=>m.id==id) as DbQuery<MainRoll>,把它转成DbQuery
这样的转换不对吧[/quote] 不知道能不能解决你问题,但转换是可以的呀
sjc0 2015-11-09
  • 打赏
  • 举报
回复
哎,还是不行!
sjc0 2015-11-09
  • 打赏
  • 举报
回复
好的,谢谢你了
  • 打赏
  • 举报
回复
要不你把dll清了重新引用下?
sjc0 2015-11-09
  • 打赏
  • 举报
回复
这个问题很怪,我也不明白怎会这样,都对啊,就是出错
  • 打赏
  • 举报
回复
3.5以上就有扩展方法了,然后我测试用的是4.5版本,但我相信应该不是这个问题
加载更多回复(10)

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧