我有一个表Orders,其中Orderid为主键,患者id为外键。我的第二个表是“患者”表,具有“患者ID”作为主键。第三个表OrderPatient仅具有订单ID作为外键,但具有所有患者详细信息(例如患者的名字,姓氏等)。 OrderPatient表没有Patientid作为外键。我正在使用现有数据库来开发EF core。我正在尝试自定义order Patient模型,使其具有Patients类的Patientdetails属性,如下所示。但是由于OrderPatient表中没有患者ID作为键,因此我无法在上下文类中建立关系。访问OrderPatient模型时如何建立OrderPatient与Patient类之间的关系并填充Patientdetails。
我尝试使用efcore关系和导航属性。
public partial class Orders
{
public int OrderId { get; set; }
public int CustomerId { get; set; }
public int PatientId { get; set; }
public virtual Patients Patient { get; set; }
public virtual OrderPatient OrderPatient { get; set; }
}
public partial class Patients
{
public int PatientId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string MiddleName { get; set; }
public DateTime? Dob { get; set; }
public string Ssn { get; set; }
public string Sex { get; set; }
public virtual ICollection<Orders> Orders { get; set; }
}
public partial class OrderPatient
{
public int OrderId { get; set; }
public Patients PatientDetails { get; set; }
public int? OptHeight { get; set; }
public int? OptWeight { get; set; }
public string OptPrimaryLanguage { get; set; }
public int CreatedBy { get; set; }
public DateTime CreatedDate { get; set; }
}
我正在尝试自定义订购患者模型,使其具有Patients类的Patientdetails属性,如下所示。但是由于OrderPatient表中没有患者ID作为键,因此我无法在上下文类中建立关系。访问OrderPatient模型时如何建立OrderPatient与Patient类之间的关系并填充Patientdetails。
答案 0 :(得分:0)
在“订购病人”表上为订购添加导航属性。
API_ID = '///foo///'
class GetWeather:
def __init__(self, city, country):
self.city = city
self.country = country
def coords(self):
url_city = ('http://api.openweathermap.org/data/2.5/weather?'
'q={},{}&appid={}'.format(self.city, self.country, API_ID)
weatherdata = requests.get(url_city).json() # Call function to get data.
print(weatherdata)
class MainApplication:
def __init__(self, master):
self.getweather = GetWeather('town', 'country')
self.master = master
self.frame = tk.Frame(self.master)
self.button1 = tk.Button(self.frame, text='Coords', width=25,
command=self.getweather.coords)
self.button1.pack()
self.frame.pack()
def main():
root = tk.Tk()
app = MainApplication(root)
root.mainloop()
if __name__ == "__main__":
main()
在您的订单表上
public partial class OrderPatient
{
public int OrderId { get; set; }
public Patients PatientDetails { get; set; } //Remove this
public int? OptHeight { get; set; }
public int? OptWeight { get; set; }
public string OptPrimaryLanguage { get; set; }
public int CreatedBy { get; set; }
public DateTime CreatedDate { get; set; }
public virtual Order Order { get; set; }// Add this
}
然后从OrderPatient访问Patient表。
public partial class Orders
{
public int OrderId { get; set; }
public int CustomerId { get; set; }
public int PatientId { get; set; }
public virtual Patients Patient { get; set; }
public virtual OrderPatient OrderPatient { get; set; }// Remove this
}
由于您正在使用延迟加载。我认为这会起作用。我希望这会有所帮助。