问题多多,linq+nhibernate的性能该如何提高

研究linq+nhibernate有一段时间了,最近尝试做了个项目,感觉问题好多。性能问题尤其的突出,先上代码

 
  
public ActionResult ViewIndex( int ? id)
{
IRepository
< user > u = new Repository < user > ();
IRepository
< lesson > l = new Repository < lesson > ();
IRepository
< Views > t = new Repository < Views > ();
IQueryable
< Vik > admin = (from v in t.GetAll().AsEnumerable()
orderby v.Id
select
new Vik
{
Id
= v.Id,
Ip
= v.Ip,
Address
= v.Address,
Time
= v.Time,
Lessonname
= l.GetAll().FirstOrDefault(x => x.Classid == v.Classid).Lessonname,
Username
= u.GetAll().FirstOrDefault(x => x.Userid == v.Userid).Username,
Freetime1
= v.Freetime1,
Freetime2
= v.Freetime2
}).AsQueryable();

PagedList
< Vik > orders = admin.ToPagedList(id ?? 1 , 10 );
return View(orders);
}

这是一个分页的数据列表显示,因为牵扯到一些数据的问题,所以没有搞主外键关系。

from v in t.GetAll().AsEnumerable() 这个地方 获取出来数据后要先转换一下 由IQueryable的格式转换成IEnumerable

然后获取完成后又要转换回去,感觉好多余啊!分页控件需要的是
IQueryable格式

 
  
public class Repository < T > : IRepository < T > where T : class
{
public IQueryable < T > GetAll()
{
ISession session
= NHibernateHelper.GetCurrentSession();
var result
= from s in session.Query < T > ()
select s;
return result;
}
}

转载于:https://www.cnblogs.com/north/archive/2011/05/11/Kop.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值