【问题标题】:how to avoid creating entities for returning small data from database如何避免创建实体以从数据库返回小数据
【发布时间】:2011-06-28 13:59:55
【问题描述】:

通常我需要从数据层中的存储过程中返回包含两列或三列的列表。我通常使用实体将数据推送回业务/UI 层。但是,我不想为并非真正实体的事物创建实体。

假设我必须返回一组“日期、字符串、字符串”,有没有其他方法可以做到这一点.. 对于两列,我也许可以使用字典。我总是最终创建一个虚拟实体,但我想这次我会问。

【问题讨论】:

    标签: c#-3.0


    【解决方案1】:

    创建一个新模型来存储数据:

    public class ResultModel
    {
        public DateTime DateTime1 { get; set; }
        public string String1 { get; set; }
        public string String1 { get; set; }
    }
    

    然后像这样将你的数据存储到这个中:

    IEnumerable<ResultModel> results =
        Entities.Table.Select(r => new ResultModel
        {
            DateTime1 = r.DateTime,
            String1 = r.String1,
            String2 = r.String2
        });
    

    未验证代码,但提供了如何实现此目的的指南。

    【讨论】:

    • 如果将数据结构作为实体使用随机模型,可能会令人困惑。在这种情况下,我宁愿为它创建一个命名实体。
    • 模型当然可以重命名,这只是一个例子。更新的名称更简单。
    • 我想不出任何更好的解决方案来解决您的问题。你还期待什么?
    • 我希望得到类似返回匿名类型的东西。我做了一些研究,但没有找到类似的东西。只是想确认我在做什么,好像是这样。
    • 据我所知没有。这是针对这种常见情况的最佳解决方案。
    【解决方案2】:

    对于此类数据,您可能可以使用 Tuple,但我从未发现创建更易于理解的类型有任何真正的损害,即使对于简单数据也是如此。

    【讨论】:

    • 我还没有使用 .net 4。我也不认为这是一个问题,但似乎没有必要一次性使用。
    猜你喜欢
    • 2021-03-29
    • 2014-12-30
    • 1970-01-01
    • 2021-12-05
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    • 2011-01-22
    相关资源
    最近更新 更多