日期:2014-05-17  浏览次数:20965 次

有没有EF高手
今天刚刚改一个项目看到一句话实在是没弄懂什么意思,有没有高手给翻译一下
1)return userInfo.GetEntity(p => p.UserID == UserID);
2)
 public virtual T GetEntity(Func<T, bool> exp)
{
    return dao.GetEntity(exp);
}
3)
public virtual T GetEntity(Func<T, bool> exp)
{
    using (BaseManageEntities Entities = new BaseManageEntities())
    {
         return Entities.CreateObjectSet<T>().Where(exp).SingleOrDefault();
    }
}
C# EF Entity?Framework

------解决方案--------------------
1)return userInfo.GetEntity(p => p.UserID == UserID);
返回userinfo中UserID为UserID的实体。
 2)
  public virtual T GetEntity(Func<T, bool> exp)
 {
     return dao.GetEntity(exp);
 }
见下面
 3)
 public virtual T GetEntity(Func<T, bool> exp)
 {
     using (BaseManageEntities Entities = new BaseManageEntities())
     {
          return Entities.CreateObjectSet<T>().Where(exp).SingleOrDefault();
     }
 } 
Where执行一个查找操作,它接收一个bool foo(UserInfo p) { return p.UserID == UserID; }的委托(也就是p => p.UserID == UserID),并且代入计算,返回一个符查找条件的序列。
SingleOrDefault返回这个序列的唯一的元素。