代码之家  ›  专栏  ›  技术社区  ›  mattruma

LINQ2SQL在读取记录列表时切换到EF

  •  0
  • mattruma  · 技术社区  · 15 年前

    实体无法识别该方法 'MyApp.Logic.UserInfo' FetchUserInfo(MyApp.Data.User)' 方法,而此方法不能 转换为存储表达式。)

    ---&燃气轮机;Csla.Reflection.CallMethodException:异常:

    ---&燃气轮机;System.NotSupportedException:LINQ到实体无法识别 FetchUserInfo(MyApp.Data.User)' 方法,而此方法不能

    代码如下:

    var data = query.Select(row => UserInfo.FetchUserInfo(row));
    
    this.AddRange(data);
    

    任何帮助都将不胜感激!

    对于那些感兴趣的人,

    var data = query.AsEnumerable().Select(UserInfo.FetchUserInfo);
    
    1 回复  |  直到 15 年前
        1
  •  2
  •   Yury Tarabanko    15 年前

    据我所知,问题是linqtoentities提供程序对如何转换自定义方法一无所知 FetchUserInfo 到ESQL。

    UserInfo 只是一个DTO和 UserInfo.FetchUserInfo 是一种实体到DTO的转换方法这会有帮助

    var data = query.AsEnumerable().Select(row => UserInfo.FetchUserInfo(row));
    

    .AsEnumerable() 调用将导致 query 结果到内存对象。