kam*_*eet 0 c# linq entity-framework
我正在使用 LINQ 查询获取 userID 和 userRole,并将它们返回。我想知道如何在返回数据后读取每个值。这是代码。
public object[] GetUserInfoFromUsernameAndPassword(string userName, string password)
{
var userInfo = from u in STE.tblUsers
where u.UserName == userName
&& u.PWD == password
select new
{
u.UserID,
u.UserRole
};
return userInfo.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
这是一个很好的方法吗?如果有人知道更好的方法,请分享..
谢谢
这段代码:
select new
{
u.UserID,
u.UserRole
};
Run Code Online (Sandbox Code Playgroud)
创建一个只能在GetUserInfoFromUsernameAndPassword方法内部使用的匿名类。所以稍后要使用返回值,您需要创建一些类并返回此类的对象集合:
public class UserInfo
{
public int Id{get; set;}
public string Role{get; set;}
}
Run Code Online (Sandbox Code Playgroud)
然后你需要修复你的查询:
var userInfo = from u in STE.tblUsers
where u.UserName == userName
&& u.PWD == password
select new UserInfo
{
Id = u.UserID,
Role = u.UserRole
};
Run Code Online (Sandbox Code Playgroud)
最后一件事是更改方法的返回类型:
public UserInfo[] GetUserInfoFromUsernameAndPassword(string userName, string password)
Run Code Online (Sandbox Code Playgroud)
之后,您将能够使用foreach例如遍历集合:
var users = GetUserInfoFromUsernameAndPassword("username", "password");
foreach(var user in users)
{
Console.WriteLine("{0} - {1}", user.Id, user.Role);
}
Run Code Online (Sandbox Code Playgroud)