我正在使用Entity Framework 6,需要在Oracle数据库中将一个外键设置为另一个表。但是,另一个表中的键不是表的主键。以下是我模特的片段:
[Table("X_METER_USE")]
public partial class XMeterUse
{
[Key]
[StringLength(20)]
[Column("PROJECT")]
public string Project { get; set; }
//... some more columns in here
[StringLength(20)]
[Column("ID_NUMBER")]
public string IdNumber { get; set; }
}
[Table("STANDARD_REAGENT")]
public partial class StandardReagent
{
[Key]
[StringLength(80)]
[Column("NAME")]
public string Name { get; set; }
//... some more columns here
[Column("SAMPLE_NUMBER")]
public int? SampleNumber { get; set; }
}
因此,在这种情况下,IdNumber
中的XMeterUse
是StandardReagent
的外键,但它对应SampleNumber
,而不是主键Name
。
这种情况下的关系是多对一的,因为StandardReagent
可以有很多XMeterUses
,但每个XMeterUse
可以选择只有一个StandardReagent
,由IdNumber--SampleNumber
链接的两个表。
XMeterUse
包含我需要在屏幕上显示的数据,其中我还需要StandardReagent
中的两列。我已经研究过并找到了一些答案,虽然相似但它们并不是我在这里的情况。一位同事建议我使用流畅的API来实现这一点,但我仍然需要在正确的方向上推动如何设置它。我认为最好的解决方案是重新设计表格,使其不像这样链接,但我没有这个选项,数据库已经建立并被其他应用程序使用。建议?
提前致谢!