2016-05-03 13 views
0

double値をフォーマットしようとしています(2小数点のみを表示しています)。私はAsEnumerableを使用しようとしましたが、私はこの方法 String.Formatのを認識しませんエンティティにこのエラーにLINQ to Entitiesは、String.Formatメソッドを認識しません。

LINQを得続ける

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 
       }); 

答えて

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 
      }) 
    }); 
+0

あなたは答えが解決されています。しかし、それは2倍遅くなるでしょう、別の選択肢があると思いますか? (私は残念なことに十進数型を使うことはできません) – Kira

+1

@HediNaily 2倍の速度はどういう意味ですか?何倍も遅い?私はあなたが同じものを2回やっているように見えますが、DBが必要以上に多くのデータを返すのを避けることができます。 – juharr

0

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

関連する問題