[英]The entity type 'DbGeography' requires a primary key to be defined
我有一個使用 dotnet ef dbcontext 腳手架生成的實體:
public partial class Company
{
public DbGeography Location { get; set; }
}
數據庫中的類型是地理。 DbGeography 來自 System.Data.Entity.Spatial 命名空間。
當我運行程序時,我收到以下錯誤:
實體類型“DbGeography”需要定義一個主鍵。 如果您打算使用無密鑰實體類型,請在“OnModelCreating”中調用“HasNoKey”。
所以我在上下文中添加:
modelBuilder.Entity<DbGeography>(builder =>
{
builder.HasNoKey();
});
出現以下錯誤:
無法確定“DbGeography”類型的導航“Company.Location”表示的關系。 手動配置關系,或使用“[NotMapped]”屬性或使用“OnModelCreating”中的“EntityTypeBuilder.Ignore”忽略此屬性。
在上下文中忽略它不是一種選擇,因為我需要這個字段。 無論如何,它會導致另一個錯誤。 ('DbGeographyWellKnownValue' 需要定義一個主鍵。)
我也不認為我需要添加關系,因為 DbGeography 不是另一個實體。
我該如何從這里開始?
我已經完成了這個“解決方案”,沒有任何區別: https://stackoverflow.com/a/53693654/7523633
根據 ErikEJ,您可以使用空間類型。 特別是對於 DbGeography,將 NetTopologySuite.Geometries package 的類型更改為“Point”。 不要忘記添加 UseNetTopologySuite。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.