簡體   English   中英

實體類型“DbGeography”需要定義主鍵

[英]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。

https://stackoverflow.com/a/53693654/7523633

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM