比如数据库有两张表及字段,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调用
既然使用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
};
.....那我要是查多列 岂不是要定义多个属性。找到办法了,现将其转为Datatable 然后给表取个名字就能通过WCF传递了,如果不给表取名通过WCF传递时Datatable将会为NULL值。
@WP921108: 学习了,嘿嘿。
在select new{}以后Tolist()一下变为select new{}.Tolist()就变为一个匿名的list集合啦,再序列化一下或者遍历拼接为json字符串就行啦,wcf接收数据的格式一般都是XML和Json的
如果你是想要泛型的话,WCF是不能传泛型的.赚DataTable那你就select =new row{};
然后返回一个row数组,自然就能转datatable了
那个具体写下如何返回一个row数组,还有如何将row数组转换为datatable吗?
@WP921108: 其实没必要,你直接返回能查出来的所有数据.
在外面包个方法,反正这时候已经把数据都差到内存里了