当前位置:编程学习 > C#/ASP.NET >>

请问个关于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 a=t.tb_customer.Where(c => c.customerSn == "ms");
 foreach(var b in a)
{
   Console.WriteLine(b.mail);
}
--------------------编程问答-------------------- var query =
    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里?
--------------------编程问答--------------------
引用 7 楼 cissyblue 的回复:
谢谢大家的回答,我想问的是以上代码的的确是能查询出类似select mail from tb的语句,但是得到的结果是var类型的,如果想得到string类型的还需要foreach吧?有没有直接一条语句就能得到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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,