请问个关于linq查询单个字段的问题
如果我想查表中的一个字段比如 select mail from tb_customer where customerSn='ms'相应的Linq查询语句应该怎么写?
如果类似这样Dt.tb_customer.SingleOrDefault(c => c.customerSn == customerSn).mail;这样查询语句应该是select * from tb_customer where customerSn='ms' 而非 select mail
--------------------编程问答-------------------- from tb in tb_customer where tb.customerSn='ms' select tb.mail --------------------编程问答--------------------
--------------------编程问答--------------------
form x in tb_customer
where z.customerSn =="ms"
select new
{
mail = z.mail
};
--------------------编程问答-------------------- var query =
var a=t.tb_customer.Where(c => c.customerSn == "ms");
foreach(var b in a)
{
Console.WriteLine(b.mail);
}
from p in dt.AsEnumerable()
where p.Field<string>("customerSn ") == ""
select new
{
mail= p.Field<string>("mail")
};
--------------------编程问答--------------------
--------------------编程问答--------------------
//
from s in tb_customer where s.customerSn=="ms" select s.mail
//
tb_customer.Where(s => s.customerSn == "ms").Select(s=>s.mail)
Dt.tb_customer.SingleOrDefault(c => c.customerSn == customerSn)
//这句的意思是查询这张表并封装到tb_customer的对象里。
form x in tb_customer
where z.customerSn =="ms"
select new
{
mail = z.mail
};
//查询这张表并封装到一个匿名类里,里面就一个字段mail
//其实用的时候并不用区别于是查询所有字段还是某个字段,通过tb_customer.mail在前台取出这个字段也是一样的,实体类的结构应该和数据库一样的,有些字段不能为空的,封装到匿名类里就没意义了
--------------------编程问答-------------------- 谢谢大家的回答,我想问的是以上代码的的确是能查询出类似select mail from tb的语句,但是得到的结果是var类型的,如果想得到string类型的还需要foreach吧?有没有直接一条语句就能得到string类型的办法 --------------------编程问答-------------------- 什么叫直接一条语句就能得到string类型?是List<string>? 还是把所有的东西都拼到一个string里?
--------------------编程问答--------------------
string strMail = Context.tb.FirstOrDefault().mail ; --------------------编程问答-------------------- 忘记了,不知道LINQ有没FirstOrDefault,没有的话用First() --------------------编程问答-------------------- --------------------编程问答-------------------- linq是有firstOrDefault的
但是最好不要像9楼那样用
--------------------编程问答-------------------- --------------------编程问答-------------------- 好像linq生成的select都是表的全部字段,但是返回的类型可以是某些字段的投影
from a in tb select new { id=a.id}
这样生成的sql还是select * from tb
但是返回的结果却是一个字段的匿名类
有没有解决select只有单个字段的啊 --------------------编程问答-------------------- (from tb in tb_customer where tb.customerSn='ms' select tb.mail).First();
补充:.NET技术 , LINQ