【问题标题】:EF Core fromsql select multiple valueEF Core fromsql 选择多个值
【发布时间】:2019-02-20 00:37:36
【问题描述】:

我正在尝试从 Technician 表中选择 Id,并从 AspNetUsers 表中选择名称。 sql 命令在 sql server 中有效,但在核心项目查询中返回 IQueryable<Technician> 但 Technician 表没有 Name 列。我该如何解决?

public IQueryable<Technician> GetTechnician()
{
    var x = context.Technician .FromSql(@"
    select t.id,r.Name from technician t
    inner join AspNetUsers r on t.user_id = r.Id
   ");
    return x;
}

【问题讨论】:

    标签: c# entity-framework-core


    【解决方案1】:

    您可以创建一个继承自 Technician 的类并拥有一个名称属性:

    public class NamedTechnician: Technician
    {
         public string Name {get; set;}
    }
    

    或者你可以只使用匿名返回类型:

    context.Technician.Select(x=> new {Id = x.Id, Name = x.AspNetUser.Name, ....});
    

    【讨论】:

    • 生成不同的类时出现此错误:无法转换类型为“Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable1[Project.Entity.Technician]' to type 'System.Linq.IQueryable1[Project.Entity.NamedTechnician]”的对象。我的代码是这样的: public IQueryable GetTechnician() { var x = context.Technician.FromSql(@".....");返回 (IQueryable)x; }
    • 这样做:context.Technician.Select(x=&gt; new NamedTechnician{Id = x.Id, Name = x.AspNetUser.Name, ....});
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 2020-08-22
    • 2017-01-05
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    相关资源
    最近更新 更多