Asp.net:哪种更好的绑定ListView通过模型绑定或通过DataSource?

时间:2017-08-27 05:43:26

标签: c# entity-framework listview webforms model-binding

我使用Entity Framework构建了一个asp.net Web应用程序Webforms,我找到了两种方法来绑定ListView: 1-通过DataSource像这样

 void Bind()
    {
        var search = db.Search.Where(k => k.RequestId == RequestId);
        lstSearch.DataSource = search.ToList();
        lstSearch.DataBind();
    }

2-使用SelectMethod像这样

public IQueryable<Search> BindOrders()
{
    var search = db.Search.Where(k => k.RequestId == 12).AsQueryable();

    return search;
}

哪一个最好,为什么?

1 个答案:

答案 0 :(得分:1)

SelectMethod以及将数据绑定到Web控件的许多其他功能在.NET Framework 4.5中作为强类型数据绑定引入。通过这些功能,您可以以干净,可维护的方式处理从/向Web控件创建/删除/修改/过滤的数据。

另一方面,DataSource方式是将数据绑定到Web控件的旧方法。

我建议你阅读this博客,其中详细介绍了这个主题(ScottGu&#39;):

  

ASP.NET vNext中的新模型绑定支持是一个很好的演变   现有的Web Forms数据绑定系统。它借用了概念和   ASP.NET MVC中的模型绑定系统的功能(您将看到这一点   更多在以后的帖子中),并使处理以代码为中心的数据访问   范式更简单,更灵活。

另外,请检查使用IQueryable<Object>的{​​{3}}:

  

从用户的角度来看,主要区别在于,当您使用时   IQueryable(使用正确支持的提供程序),您   可以节省很多资源。