这是 id 生成实体:
public class ConceptDataEntry {
[Key]
public long Id { get; set; }
}
这是一个依赖于
ConceptDataEntry
实体生成的 ID 的示例实体:
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; }
}
我不清楚这是否是实现此目的的正确方法。
我还想确保使用来自
ConceptDataEntry
的 id 的每个实体不会在彼此之间共享 id 值,因为它们应该是唯一的。不过,我可以手动实现该约束。
在您的
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 按约定发现关系。您可以在文档中找到有关此内容的更多详细信息: