【问题标题】:LINQ to Entities does not recognize the method String.FormatLINQ to Entities 无法识别方法 String.Format
【发布时间】:2016-05-04 03:36:55
【问题描述】:

我正在尝试格式化双精度值(仅显示 2 位小数)。我尝试使用 AsEnumerable 但我不断收到此错误

LINQ to Entities 无法识别该方法 字符串格式

var tw = workers.Select(x => new
            {
                Id = x.Id,
                JobOpportunityFeedbacks = x.JobOpportunityFeedbacks.AsEnumerable().
                Select(y => new
                {
                    Rating = String.Format("0.00",y.Rating),
                    Feedback = y.Feedback
                });

【问题讨论】:

    标签: c# string entity-framework linq formatting


    【解决方案1】:

    您必须在初始 Select 之外执行 AsEnumerable

    var tw = workers.Select(x => new
        {
            Id = x.Id,
            JobOpportunityFeedbacks = x.JobOpportunityFeedbacks
                .Select(y => new
                {
                    y.Rating,
                    y.Feedback
                })
        })
        .AsEnumerable()
        .Select(x => new 
        {
            x.Id,
            JopOpertunityFeedbacks = x.JobOpportunityFeedbacks
                .Select(y => new
                {
                    Rating = String.Format("0.00",y.Rating),
                    y.Feedback
                })
        });
    

    【讨论】:

    • 你的答案就是解决方案。但是,它会慢两倍,你认为还有另一种选择吗? (不幸的是我不能使用十进制类型)
    • @HediNaily 慢两倍是什么意思?比什么慢两倍?我知道您似乎两次做同样的事情,但这避免了数据库返回的数据超出您的需要。
    【解决方案2】:

    使用 SqlFunctions 类 - 我没有尝试过,但应该可以。

    var tw = workers.Select(x => new
                {
                    Id = x.Id,
                    JobOpportunityFeedbacks = x.JobOpportunityFeedbacks.AsEnumerable().
                    Select(y => new
                    {
                        Rating = SqlFunctions.StringConvert(y.Rating, 4, 2)
                        Feedback = y.Feedback
                    });
    

    https://msdn.microsoft.com/en-us/library/dd487158(v=vs.110).aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      • 1970-01-01
      • 2012-04-03
      • 2021-11-06
      • 2012-05-03
      相关资源
      最近更新 更多