我看不出 ObjectDataSource 和新 DomainDataSource (http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/04/11/using-domaindatasource-in-asp-net.aspx)之间的区别。我需要创建 4 个方法,然后在两种情况下都使用它们。
我的主要区别是什么?
我看不出 ObjectDataSource 和新 DomainDataSource (http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/04/11/using-domaindatasource-in-asp-net.aspx)之间的区别。我需要创建 4 个方法,然后在两种情况下都使用它们。
我的主要区别是什么?
我知道的一件事是 ObjectDataSource 不能很好地对付“跟踪”的数据对象。例如,如果数据对象是 Linq to SQL 对象,那么您需要 Linq to SQL DataContext 来跟踪该数据对象,然后才能将其“更新”到数据库。ObjectDataSource 依赖于Activator.CreateInstance在尝试保存数据对象之前构建数据对象。
在我参与的一个较旧的 VS2005 项目中,我们使用 NHibernate 作为后端(它同样需要负责实例化数据对象)并最终在我们的 aspx 页面上使用此 NHibernateDataSource的一个版本。
似乎 DomainDataSource 打算用于各种由 DataContext 驱动的域模型对象(我不会称它们为 POCO ;))、Linq to SQL、Linq to Entities、Astoria、RIA 服务等......