在Entity Framework中通过id查询相关实体

Posted

技术标签:

【中文标题】在Entity Framework中通过id查询相关实体【英文标题】:Query a related entity by id in Entity Framework 【发布时间】:2021-01-15 05:49:45 【问题描述】:

我将 c# web api 与实体框架结合使用。 http 请求由 sap ui5 框架生成。生成的 get 请求如下所示: “http://localhost:52854/KddietzTourenplan/5/KddietzTour/1” 必须怎么关联方法和参数的名称?

    [EnableQuery]
    public IQueryable<KddietzTour> GetKddietzTour([FromODataUri] int key, ???)
    
        return _oContext.KddietzTour.AsQueryable().Where(p => p.NTourenplanId == key);
    

我知道,最简单的请求是“http://localhost:52854/KddietzTour/1”。但如前所述,请求是从另一个框架生成的。

【问题讨论】:

【参考方案1】:

您需要使用 HttpGet 属性将 URL 映射到方法及其参数。在 HttpGet 中使用的模板中映射您需要使用 ParameterName 的参数

[EnableQuery]
[HttpGet("KddietzTourenplan/5/KddietzTour/key")]
public IQueryable<KddietzTour> GetKddietzTour([FromODataUri] int key, ???)

    return _oContext.KddietzTour.AsQueryable().Where(p => p.NTourenplanId == key);

【讨论】:

以上是关于在Entity Framework中通过id查询相关实体的主要内容,如果未能解决你的问题,请参考以下文章

entity framework怎么查询部分数据

Entity Framework 4 和查询结果的缓存

带有 Entity Framework Core 的 SQLite 很慢

Entity Framework 6 - . 创建新对象,保存更改,根据新 id 重新查询对象,返回 null

Entity Framework Core linq 查询返回 InvalidCastException

使用 linq/Entity Framework 查询多对多关系。代码优先