在linq中设置对象初始值设定项中的参数时传递当前对象

时间:2012-04-19 12:01:14

标签: linq

  var userData = (from u in DB.user_data
                                     join p in DB.users on u.userid equals p.userid
                                     join s in DB.roles on p.roleid equals s.roleid
                                     where u.deptid == 24
                                     select new UserData()
                                     {
                                         userId = u.id,
                                         RoleName = s.Name,
                                         CreateDate = u.Create_date,
                                         Active = u.Active,
                                         ValidTokens = GetTokencount(-- userdata  --) -- how to pass current userdata object here

                                     }).ToList();

以下是全局方法,根据逻辑

从中获取用户的可用计数
public int GetTokencount(UserData objUserData)
{

// code to get count goes here 
}

1 个答案:

答案 0 :(得分:0)

简单地说,你不能。当您在对象初始值设定项中时,当前的UserData对象尚未初始化,因此您无法引用它。

相反,您可以在创建集合后循环遍历集合,以便在每个ValidTokens实例上设置UserData属性。