c# - Entity Framework - 根据另一个表中的 ID 获取实体名称

标签 c# entity-framework .net-core entity-framework-core

我不确定如何正确表达这个问题,但这是我目前在后端开发项目中遇到的问题。

假设我有一个名为“用户”的表。我创建了一个名为 User 的模型:

public partial class User
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public id JobTitleId { get; set; }
        ... other fields
    }

用户拥有与 JobTitles 表相关的职位名称。现在的结构方式是 FE 将调用一个 api,我们称之为字典 api,它返回带有职位名称的对象列表。所以,像这样: [{id: 1, 标题: 'aa'}, {id: 2, 标题: 'bb'} ...] 因此,根据可用的 jobtitleid,将调用此 api,并且 View 将根据 id 显示标题。

现在,我觉得这并不是很有效,因为如果我们有一百或一千个职位,FE 将必须解析每个对象以匹配 id。

有没有更好的方法来显示给定 ID 的职位名称?我无法直接返回职位名称,因为如果用户的职位名称未更新,但带有职位名称的特定表单是通过 PUT 请求发送的,则它将返回职位名称而不是 ID 回用户表。

此外,职位名称将是前端的自动完成字段,当用户输入职位名称时,该字段将调用后端的 api,从而在用户输入职位名称时将该职位的 ID 返回到后端更新了新的职位名称。

抱歉,如果我不够清楚,如果需要,我可以提供更多详细信息。

最佳答案

你尝试过做这样的事情吗? 我假设 JobTitleId 属于 JobTitles 类

public partial class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public id JobTitleId { get; set; }

    [ForeignKey("JobTitleId")]
    public JobTitles JobTitles{ get; set; }
}

因此,正如您所知,类是引用对象,当您将 User 类传递到 View 时,当您从下拉列表中更改用户标题时,它也会相应地更改 jobtitleId

关于c# - Entity Framework - 根据另一个表中的 ID 获取实体名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60665077/

相关文章:

linux - 为什么在发布 .net 核心应用程序后我找不到 View

c# - ReportingService 类的命名空间

c# - 我需要获取查询的计数。我需要再写一个 SQL 查询吗

sql-server - 如何在 SQL Server 中创建行的过期时间

.net - HttpClient DelegatingHandler 意外的生命周期

c# - InnerException 抛出 TypeLoadException TypeLoadException : Could not load type 'System.UriTemplate' from assembly 'System. ServiceModel,

c# - MediatR:INotification 处理程序被多次调用

c# - 在没有 web.config 的情况下使用 log4net

c# - .Net MVC 实体和 ViewModel...相同还是独立?

c# - EFcore 中 'id' 操作的结果中不存在所需的列 `FromSql`