Asp.net 为什么要创建类来表示web应用程序中的数据?
过去,在我设计和构建的应用程序中,我通常使用类来表示我的数据。但在web应用程序中,这似乎不需要/不适用,因为数据存储在数据库中,Asp.net 为什么要创建类来表示web应用程序中的数据?,asp.net,oop,poco,Asp.net,Oop,Poco,过去,在我设计和构建的应用程序中,我通常使用类来表示我的数据。但在web应用程序中,这似乎不需要/不适用,因为数据存储在数据库中,DataSet之类的东西对于检索和保存数据非常有用 我目前使用ASP.NET,数据绑定控件(如GridView)似乎喜欢绑定到SqlDataSource,ObjectDataSource,DataView,等等。因此,给定一个从数据库中提取数据集的静态MyDB类,我的面向数据的页面代码通常基本上如下所示: DataSet employeeData = MyDB.Get
DataSet
之类的东西对于检索和保存数据非常有用
我目前使用ASP.NET,数据绑定控件(如GridView
)似乎喜欢绑定到SqlDataSource
,ObjectDataSource
,DataView
,等等。因此,给定一个从数据库中提取数据集的静态MyDB
类,我的面向数据的页面代码通常基本上如下所示:
DataSet employeeData = MyDB.GetData();
DataView dvEmpData = new DataView(employeeData);
grdData.DataSource = dvEmpData;
grdData.DataBind();
因此,我通常没有与数据库模式对应的数据类。但是像和EF框架这样的新开发支持创建和使用这些类。这有什么好处?我的想法是:
- 编译时错误,否则直到运行时才会注意到拼写错误<代码>员工数据[0]。行[i][“名称”]
不如员工[i]好。名称
其中员工
是一个IEnumerable
IEnumerable
上使用LINQ和cool扩展方法灵活地筛选数据集合,而不必为我需要执行的每个聚合/选择在数据库中创建/更改存储过程或查询GridView
和它的同胞会更喜欢绑定到DataView
,而不是IEnumerable
。此外,数据库在查询和聚合数据方面将比LINQ更快
POCO认可的方法背后的原因是什么?我在这里讲过了吗,还是遗漏了什么?简明扼要地回答您的具体问题: 利用业务对象,您可以比SQL更高效地对内存中的数据执行逻辑,或者以特殊方式在多个位置执行逻辑
- 示例:需要在页面名称更改时设置URL重写吗?一个中心位置显然是理想的
- 使用LINQtoSQL,您可以在没有缺点的情况下获得好处(如您所提到的),再加上一些额外的好处李>
在您不需要这种非平凡逻辑的情况下,您还可以使用并直接绑定到Gridview;然而,LINQtoSQL非常简单,许多人甚至在最简单的情况下也喜欢它 看起来很棒!它如何处理数据库的更新?如果我更改更新/选择/删除存储过程以获取更多参数,或者在开发过程中更改表的架构,会发生什么情况?我在ASP.NET 2中使用了TableAdapters,但在这方面有问题。要更新数据:Dim DB as new AppDataContext::MyProduct.Price=NewPrice::DB.SubmitChanges()默认情况下,LINQ To SQL自动生成SQL以执行选择/更新等。但是,您可以指定覆盖(例如存储过程)。我建议花上几个小时来阅读这些。。。你会很高兴你做到了!从第1部分开始!