首页 新闻 会员 周边 捐助

LINQ 连表查询 如何返回DataTable或返回List<T>集合???求解 通过WCF传递 返回

0
悬赏园豆:10 [已解决问题] 解决于 2014-07-15 13:20

比如数据库有两张表及字段,studentInfo:ID 、Name、classID 和 ClassInfo:ClassID、ClassName

代码:

StudentEntities st = new StudentEntities();
var stu=
from s in st.StudentInfo
join c in st.ClassInfo
on s.ClassID equals c.ID
select new

{
Name=s.Name,
className=c.ClassName
};

 如何将stu 转化为DataTable 或者List<T>??求大神支招啊

要求通过WCF调用 

WP921108的主页 WP921108 | 初学一级 | 园豆:108
提问于:2014-03-26 20:41
< >
分享
最佳答案
0

既然使用WCF返回,建议楼主专门为stu定义一个实现了数据契约的实体类StuMini,这样查询的时候可以直接得到List<StuMini>,直接通过WCF传递了。

 

StudentEntities st = new StudentEntities();
var stu=
from s in st.StudentInfo
join c in st.ClassInfo
on s.ClassID equals c.ID
select new StuMini{

Name=s.Name,
className=c.ClassName
};

收获园豆:5
于为源 | 小虾三级 |园豆:956 | 2014-03-27 12:43

.....那我要是查多列 岂不是要定义多个属性。找到办法了,现将其转为Datatable 然后给表取个名字就能通过WCF传递了,如果不给表取名通过WCF传递时Datatable将会为NULL值。

WP921108 | 园豆:108 (初学一级) | 2014-03-27 22:16

@WP921108: 学习了,嘿嘿。

于为源 | 园豆:956 (小虾三级) | 2014-03-28 13:38
其他回答(2)
0

 在select new{}以后Tolist()一下变为select new{}.Tolist()就变为一个匿名的list集合啦,再序列化一下或者遍历拼接为json字符串就行啦,wcf接收数据的格式一般都是XML和Json的

收获园豆:2
jean69 | 园豆:231 (菜鸟二级) | 2014-03-26 23:30
0

如果你是想要泛型的话,WCF是不能传泛型的.赚DataTable那你就select =new row{};

然后返回一个row数组,自然就能转datatable了

收获园豆:3
吴瑞祥 | 园豆:29449 (高人七级) | 2014-03-27 09:07

那个具体写下如何返回一个row数组,还有如何将row数组转换为datatable吗?

支持(0) 反对(0) WP921108 | 园豆:108 (初学一级) | 2014-03-27 12:17

@WP921108: 其实没必要,你直接返回能查出来的所有数据.

在外面包个方法,反正这时候已经把数据都差到内存里了

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-03-27 12:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册