我正在重构一个较旧的应用程序,它使用动态内联SQL,从大型Oracle数据库中提取数据.我创建了一个工作正常的存储过程(PL/SQL).因为它只有一行(datarow),所以我让它返回一个数据行.该类位于DAL中.
在我重构的过程中,我认为我会将数据库(在DAL中)与业务层隔离(使用linQ).我的第一个想法是创建一个包含返回的数据行的对象.
我的一位同事推荐匿名类型,我不熟悉.在我迄今为止所做的阅读中,它看起来很简单.如果我仍然需要使用匿名类型放置字段名和字段类型,我只是没有看到它的值.
我错过了什么吗?如果我返回数据集/数据表,那么使用匿名类型会有更多价值吗?
匿名类型旨在从创建它们的作用域中使用.没有其他范围应该知道匿名类型的定义,因此,由于您希望从方法返回此对象,因此匿名类型是不合适的.
一般来说,这个想法是对象只在一个或两个地方使用,都在同一个方法中,并且它的使用非常简单直接,因此不需要创建新的命名类型.它们也是不可变的,在C#中创建不可变对象是......更详细.