提问人:hamstar 提问时间:10/30/2023 最后编辑:marc_shamstar 更新时间:10/30/2023 访问量:71
在实体框架中使用外键作为主键的正确方法是什么?
What is the correct way to use a foreign key as a primary key in Entity Framework?
问:
下面是 id 生成实体:
public class ConceptDataEntry
{
[Key]
public long Id { get; set; }
}
下面是一个依赖于实体生成的 ID 的示例实体:ConceptDataEntry
public class GlobalLocationDataEntry
{
[Key]
//[InverseProperty("Id")] incorrect?
public ConceptDataEntry Id { get; set; } = null!;
public double Longitude { get; set; }
public double Latitude { get; set; }
public double Altitude { get; set; }
public double MapRadius { get; set; }
}
我不清楚这是否是实现这一点的正确方法。
我还想确保每个实体使用 id from 不会在彼此之间共享 id 值,因为它们在两种方式上都应该是唯一的。但是,我可以手动实现该约束。ConceptDataEntry
答:
0赞
lordnoob
10/30/2023
#1
在类中,添加显式外键属性,然后导航到父实体:GlobalLocationDataEntry
public class GlobalLocationDataEntry
{
[Key]
[ForeignKey(nameof(ConceptDataEntry))]
public long Id { get; set; };
public double Longitude { get; set; }
public double Latitude { get; set; }
public double Altitude { get; set; }
public double MapRadius { get; set; }
public ConceptDataEntry? ConceptDataEntry { get; set; }
}
在这里,我使用了显式属性来配置外键,但你也可以允许 EF Core 按约定发现关系。您可以在文档中找到有关此内容的更多详细信息:
评论