在数据访问层中,查询数据库并返回结果的可枚举对象时,返回一组具有属性名称、年龄等属性的Dog对象列表,相比于返回包含“姓名”、“年龄”等列的DataTable,有哪些优势?
一些特点:
DataTable
更简单。或者如果你正在使用具有动态形状的查询。如果你习惯于Json.NET,就像使用JObject
而不是反序列化到特定类一样。 - Jon Skeet如果您使用对象而不是 DataTables,则可以获得强类型结果,并使使用数据的代码更加清晰。您不必拥有各种字符串来访问应该只是对象属性的内容。
此外,如果您使用像 NHibernate 这样的 ORM 工具,则可以直接从数据库映射到您的对象,而无需手动调用数据库并处理 SqlCommand 等。
它将您的业务逻辑与持久层分离。
因此,您的“Dog”对象以及大部分使用它的代码只需关注狗和狗的特性,而不必担心哪种数据访问方式是本周流行的。