linq to ef入门困惑

morningnet 2014-10-22 11:47:36
DbaseEntities db = new DbaseEntities();

public static Admin GetAdminByID(string UserID)
{
return db.Admin.Where(a => a.userID == UserID).SingleOrDefault();

}

刚学 linq to ef ,就这个简单的方法,老是提示 return db.Admin.Where(a => a.userID == UserID).SingleOrDefault()未将对象设置引用到实例,求高手指点。
...全文
119 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
smthgdin_020 2014-10-23
  • 打赏
  • 举报
回复
public static Admin GetAdminByID(string UserID) 静态方法里不能直接使用外部实例,所以外部实例要改成静态,或者是在静态方法里创建实例。 然后,不指定成只读,这个db可能在某个地方被重新赋值,这样静态方法里使用也是有隐患。
morningnet 2014-10-23
  • 打赏
  • 举报
回复
只有static没有数据,但是改成: private static readonly DbaseEntities db= new DbaseEntities() ; 这样就行了,求解释?!
moonwrite 2014-10-23
  • 打赏
  • 举报
回复
最好不要静态话EF,因为EF会有自己的缓存机制~这样会让你读取到的数据不是最新的~ private static DbaseEntities db static ClaseeName()//在静态构造函数中初始化 { db=new DbaseEntities(); } 既然这样行~~~也不推荐使用静态EF的
我现在在路上 2014-10-23
  • 打赏
  • 举报
回复
引用 5 楼 findcaiyzh 的回复:
我真没觉得应该是编译不过呢,应该是这样 public static Admin GetAdminByID(string UserID) { DbaseEntities db = new DbaseEntities(); return db.Admin.Where(a => a.userID == UserID).SingleOrDefault(); } static方法访问不到类成员变量。你调用static方法是,并需要初始化一个类实例。
正解。。有隐患,编译不通过
宝_爸 2014-10-23
  • 打赏
  • 举报
回复
我真没觉得应该是编译不过呢,应该是这样 public static Admin GetAdminByID(string UserID) { DbaseEntities db = new DbaseEntities(); return db.Admin.Where(a => a.userID == UserID).SingleOrDefault(); } static方法访问不到类成员变量。你调用static方法是,并需要初始化一个类实例。
wjq 2014-10-23
  • 打赏
  • 举报
回复
你这根本不是ef的问题,是基础都没学。 db是你的类级别的变量,你的方法是一个静态方法。静态方法只可以访问本类中的静态对象,你要把你的ef也声明为static的 另外,entity的context对象强烈不建议公共共享使用,建议随用随new
devmiao 2014-10-22
  • 打赏
  • 举报
回复
static DbaseEntities db = new DbaseEntities(); 另外查找出来数据没有

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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