读书人

Linq中如何用new关键字查询多个字段

发布时间: 2012-03-03 15:33:02 作者: rapoo

Linq中怎么用new关键字查询多个字段?
要求:1.返回model数组
2.利用Lamdom表达式查询出表中的某些字段,不是所有字段,也不是一个字段
model的UserInfo中有ID,UserName,UserPass,UserTel,UserEmail,UserAddress几个字段

public UserInfo[] GetModelList()
{

UserInfoDataContext context = null;
UserInfo[] info = new UserInfo[0];

try
{
context = new UserInfoDataContext();
//这里只需查询3个字段
var r = (from n in context.UserInfo select new { n.ID,n.UserName,n.UserPass});
//这里怎么将r转换成model数组??
info = r.ToList<UserInfo>(); //出现错误
}
catch
{

}
finally
{
if (context != null)
{
context.Dispose();
}
}
return info;
}

这个该怎么修改?
哪位能够贴出类似的代码让小弟学习一下?

[解决办法]
定义个
public class UserInfo2
{
public int ID;
public string n.UserName;
public string UserPass;
}
然后
public UserInfo2[] GetModelList()
里面
info = r.ToList<UserInfo2>();
[解决办法]

探讨
定义个
public class UserInfo2
{
public int ID;
public string n.UserName;
public string UserPass;
}
然后
public UserInfo2[] GetModelList()
里面
info = r.ToList<UserInfo2>();

[解决办法]
探讨

定义个
public class UserInfo2
{
public int ID;
public string n.UserName;
public string UserPass;
}
然后
public UserInfo2[] GetModelList()
里面
info = r.ToList<UserInfo2>();

[解决办法]
http://hi.baidu.com/anranstl/blog/item/9c8d4209d3f1d82f6a60fb55.html
[解决办法]
首先,楼主你要说明返回model数组用做何用?

new 的对象是匿名对象,但是你的函数的返回类型是UserInfo,肯定报错,匿名对象是无法返回指定类型的。
解决方案一:
UserInfo[],改为List<object>,用泛型集合,也可以实现数组功能。
[解决办法]
List<UserInfo> r = (from n in context.UserInfo select new {ID= n.ID,UserName=n.UserName,UserPass=n.UserPass}).tolist;

或者可以循环r 把他的属性分别赋值给UserInfo的属性
[解决办法]
回3楼:
匿名类型不能跨method传递,
而且要直接赋值,所以也不能定义为class级成员

读书人网 >.NET

热点推荐