我有以下方法:
public List<object> GetLoginValues(String user, String pass)
{
using (db = new DCDataContext())
{
List<object> x = (from u in db.users
join t in db.userTypes on u.type equals t.typeID
where u.loginName == user &&
u.password == pass &&
u.isActive == true
select new
{
u.userID,
u.loginName,
u.userCode,
u.type,
u.team,
t.typeName
}).ToList();
return x;
}
}
这显然不起作用。我需要此方法来返回此连接的结果。最好是List
。我想知道是否可以这样做而不必创建包含两个表的属性的类,因为我正在使用linq-to-sql
并且已经为每个表都有类。
为了使这个查询/方法正常工作,我应该返回什么类型?
答案 0 :(得分:0)
以下方法会将join的结果返回给List。
您需要通过加入来指定要从两个表中使用的列。您必须指定列(属性),因为join不知道需要选择哪个。还有它的良好做法。选择所需的列而不是选择所有列属性。
public dynamic GetLoginValues(String user, String pass)
{
using (db = new DCDataContext())
{
var x = (from u in db.users
join t in db.userTypes on u.type equals t.typeID
where u.loginName == user &&
u.password == pass &&
u.isActive == true
select new
{
u.userID,
u.loginName,
u.userCode,
u.type,
u.team,
t.typeName
}).ToList();
return x; //returns the list of values
}
}
是的,如果您不想使用自定义类,则上述代码不需要创建其他自定义类。
调用方法如下所示:
YourClassName dbObj = new YourClassName();
var loginDetailsList = dbObj.GetLoginValues("RJK", "123456");