如何取指定字段后组成实体类 linq to entity.
如下语句
using(textEntities textcontext = new textEntities())
{
booktb booktbobj = textcontext.Buy_booktb.FirstOrDefault(b => b.bookid== bookid);
return booktbobj;
}
这样的语句在sql中会变成select * from booktb where bookid=@bookid
可是我其实只是想要提取booktb中的某些字段.如只取他的bookid和bookname 这两个字段.可是他现在却是*
我认为效率上可能会有所影响.有没有办法让他变的像select booid,bookname from booktb where bookid=@bookid一样啊.
说明:我不想用 from in select 这样的语句.因为他这样是返回一个IQueryable, 而我想要的是他能返回一个实体类.
------解决方案--------------------
效率上是有影响的
var ss = textcontext.Buy_booktb.where(b => b.bookid== bookid)
.select(b => new {b.bookid, b.bookname})
.FirstOrDefault();
但这样生成的是匿名类型,不能直接return了,因为返回类型对不上了
============
你要写个具体类
public class my
{
public int bookid;
public string bookname;
}
然后返回类型为my
my ss = textcontext.Buy_booktb.where(b => b.bookid == bookid)
.select(b => new my{bookid = b.bookid, bookname = b.bookname})
.FirstOrDefault();
return my;