【问题标题】:How to use EF Include method(to load related data) in F#?如何在 F# 中使用 EF Include 方法(加载相关数据)?
【发布时间】:2020-06-19 11:17:38
【问题描述】:

如何使用 Include 方法在 F# 中急切加载相关数据我试过这个: _ctx.Reports.Include(x => x.Category) 并得到以下错误:

严重性代码描述项目文件行抑制状态 错误 FS0041 无法根据此程序点之前的类型信息确定方法“包含”的唯一重载。可能需要类型注释。

已知参数类型:^_arg3

候选人: - (扩展) Linq.IQueryable.Include(navigationPropertyPath: string) : Linq.IQueryable - (扩展) Linq.IQueryable.Include(navigationPropertyPath: Linq.Expressions.Expression>) : Query.IIncludableQueryable SharpNews.Application E:\0DevelopingLearn \BackEnd\ASP.NET Core\SharpNews\SharpNews.Application\Admin\Report\GetReports.fs 44 活动

还有两个错误是说 x 是未定义的

我是否使用了不正确的语法?

【问题讨论】:

  • 是的,您可以像在 C# 中一样使用Include 甚至ThenInclude。你试过什么了?你有任何错误吗?

标签: entity-framework f# eager-loading c#-to-f#


【解决方案1】:

投射到 seqIEnumerable<_> 就可以了

context.Users
    .Include(fun u -> u.Roles :> seq<Role>)
open System.Collections.Generic

context.Users
    .Include(fun u -> u.Roles :> IEnumerable<Role>)
        .ThenInclude(fun r -> r.Permissions)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多