gpt4 book ai didi

c# - 如何首先在代码中获取具有外键关系的子实体中的父实体属性?

转载 作者:行者123 更新时间:2023-11-30 20:44:11 26 4
gpt4 key购买 nike

我有以下两个实体 Doctor(parent) 和 DoctorPayment(child)

  1. 一种可能的方法是在 DoctorPayment 实体中获取 Doctor 对象并通过 Doctor.Name 获取

  2. 但我只需要 DoctorName 而不是应该由 DoctorId 映射的 DoctorPayment 中的整个对象

我只提到了 Doctor 实体的几个属性,但它有大约 50 个属性,所以我不想在 DoctorPayment 中使用 Doctor 对象

public class Doctor
{
public int Id { get; set; }
public string Name { get; set; }
public string Designation { get; set; }
public int ModifiedBy { get; set; }
}

public class DoctorPayment
{
public int Id { get; set; }
public int DoctorId { get; set; }
public decimal Amount { get; set; }
public DateTime Date { get; set; }
public int ModifiedBy { get; set; }
public Doctor Doctor { get; set; } // a possible way to take Doctor object
}

最佳答案

老实说,我的直觉是您可能过早地进行了优化。除非您已经分析了您的软件并确定只获取一列而不是所有列对性能至关重要,否则我不会费心去优化它。

但是,要回答您的问题:您可以让 EF 像这样检索单个列:

var name=dbContext.Doctors.Where(d=>d.ID==DoctorId).Select(d=>d.Name)

当然,如果您经常需要访问它,您也可以将其封装在 DoctorPayment 类的只读属性中。

请注意,这种方法的缺点是您总是从数据库中获取名称,即使 Doctor 实体可能已经通过先前的查询延迟加载进行了预取。

关于c# - 如何首先在代码中获取具有外键关系的子实体中的父实体属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29744076/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com