如何使用EF Core 2.1编写此语句?

时间:2018-09-12 15:50:07

标签: ef-core-2.1

我将代码从EF6切换到EF Core 2.1,并且停留在这一行:

var pinnedJobIds = ctx.Database.SqlQuery<int>("Select JobId From UserJobsPinned Where UserId=@p0", userId).ToList();

我知道EF Core允许这样做:

ctx.Jobs.FromSql("Select * From Jobs").ToList();

但是,我不知道如何简单地返回Id字段而不是整个Job记录。

我看到了类似的东西,但是我无法使它起作用:

var pinnedJobIds = ctx.Query<int>()

但是我没有从FromSql上获得任何选择。

如何在EF Core中做到这一点?

1 个答案:

答案 0 :(得分:0)

如果Job是实体类型,则可以这样编写:

var pinnedJobIds = ctx.Jobs
    .FromSql($"Select * From UserJobsPinned Where UserId={userId}")
    .Select(j => j.JobId)
    .ToList();