我试图了解 ADO.NET 数据服务和数据源控件之间的区别,用于处理通过 ASP.NET webforms 处理的数据。据我所知,数据源控件是一组控件,包括简单的 SQLDataSource 到 EntityDataSource。SQLDataSource 需要直接进入数据库,因此不需要访问实体模型,但与实体一起工作的 EntityDataSource 需要访问 EDM ......可能有些东西不清楚或有太多东西重叠。MS docs 对我没有帮助。
2 回答
ADO.net 数据服务(WCF 数据服务)和数据源控件只是两个不同的东西。
数据源控件只是将数据绑定到 UI 控件(Gridview、Listview 等)的控件。(如果你看一下MSDN,所有这些控件的驱动System.Web.UI.Control
和它们的命名空间都是 System.Web.UI.WebControls
)。要将数据绑定到 UI 控件,数据可以来自各种来源,例如来自数据库、xml、edm 或对象集合等... 数据源控件连接到这些数据源并从这些数据源中检索数据,并使其可用于 UI控件绑定,无需代码。(如果您的 ui 控件需要直接绑定到数据库,您将使用 SqlDataSource,或者如果您使用实体数据模型(数据库上的附加层),您将使用 EntityDataSource。)
WCF 数据服务(正式名称为 ADO.net 数据服务)是一个使用开放数据协议 ( OData ) 作为 REST-ful 方式在 Web 服务中公开数据层的框架它实际上是运行时与 Web 服务和实体框架的组合。它也被称为 Microsoft 的 N 层数据访问解决方案,因为 WCF 数据服务还包括一个客户端组件,该组件负责跟踪您对客户端上的数据所做的更改,将这些更改推送回数据库,并在使用时保存它们实体框架模型。
“ADO.NET 数据服务有助于创建更自然地将数据集成到 Web 的灵活服务。它通过实体数据模型依赖于数据的语义,并将这些数据服务作为可寻址 URI 上的 REST 样式资源呈现。所以交互可以通过简单的 HTTP(GET、SET、DELETE)发生。”