• 问题多多,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;
    }
    }
  • 相关阅读:
    【转】JavaScript里的this指针
    userscript.user.js 文件头
    css clearfix
    callback调用测试
    【个人】IIS Express 配置
    Js中 关于top、clientTop、scrollTop、offsetTop的用法
    【设为首页】/【收藏本站】
    JQuery插件开发
    Google Ajax Library API使用方法(JQuery)
    并发操作问题
  • 原文地址:https://www.cnblogs.com/north/p/Kop.html
Copyright © 2020-2023  润新知