2016-05-26 40 views
0

私のドメインクラスをDTOクラスにマッピングするメソッドdurningを呼び出したいのですが、多くの場合、LINQ to EntitiesまたはLINQ toオブジェクトに失敗してしまいました奇妙な別のエラー。 Actulalエラーは、 "LINQ to Entitiesはメソッド 'System.String ResizeToLogoImage(System.String)'を認識しません。このメソッドはストア式に変換できません。"asp.net web api 2 LINQ to Entitiesはメソッドを認識しません

マッピング方法:

public async Task<SingleCategory> SingleCategoryMapping(EventerApiContext context, int id) 
    { 
     var category = await context.Category.Select(c => new SingleCategory 
     { 
      CategoryId = c.CategoryId, 
      CategoryName = c.CategoryName, 
      CityId = c.CityId, 
      Events = context.Event.ToList().Where(e=>e.CategoryId == id).Select(e=> new EventForSingleCategory 
      { 
       EventId = e.EventId, 
       EventName = e.EventName, 
       EventLogo = ImageProcessor.ResizeToLogoImage(e.EventDetail.EventImage.EventImageBase64) 
      }).ToList() 
     }).SingleOrDefaultAsync(c => c.CategoryId == id); 

     return category; 
    } 

メソッドが呼び出されます。

public static string ResizeToLogoImage(string base64String) 
    { 
     if (base64String == null) 
     { 
      return "NULL"; 
     } 
     var imageToResize = Base64ToImage(base64String); 
     var resizedImage = ScaleImage(imageToResize, 50, 50); 
     return ImageToBase64(resizedImage, imageToResize.RawFormat); 
    } 

は、私はエラーがEventLogoのプロパティマッピングの際に表示されている知っているが、私は何を行うにはより多くのアイデアを持っていません。

+0

まあ、この式はSQLクエリでは翻訳できません。ですから、このメソッドを適用する前に 'IQueryable'世界から出なければなりません。質問:イベントとカテゴリの間にナビゲーションプロパティがありませんか? –

答えて

1

Selectステートメントを実行する前に、まずデータを取得してください。私はそれがデータベース上でResizeToLogoImageを実行しようとしていると思われます:)

関連する問題