[英]EF Core 3.1 The property 'Geometry.UserData' could not be mapped
我有一個數據庫優先的 .net 核心 3.1 web 應用程序,它連接到帶有geography
列的 SQL 服務器數據庫表。 數據庫腳手架和應用程序構建完成時沒有任何問題,但是當我運行應用程序時出現錯誤。 如果我添加[NotMapped]
屬性,錯誤消失但顯然該屬性未映射。 可能是什么問題?
無法映射屬性“Geometry.UserData”,因為它的類型“object”不是受支持的原始類型或有效的實體類型。 顯式 map 此屬性,或使用“[NotMapped]”屬性或使用“OnModelCreating”中的“EntityTypeBuilder.Ignore”忽略它。
我已經安裝了這些包
腳手架 class 看起來像這樣
public class MyClass
{
public int Id { get; set; }
public string Name { get; set; }
public NetTopologySuite.Geometries.Geometry Location { get; set; }
}
我找到了一個綜合了幾件事的答案。 首先,在安裝必要的拓撲包后,重新運行數據庫 ef 腳手架。 然后,在 Startup.cs 中添加.UseSqlServer(ConnectionString, x=> x.UseNetTopologySuite();
。請記住,生成的 Datacontext 也包含相同的行,但它沒有被執行,因為它是寫在if
語句中的。
將 NetTopologySuite 5 更新為 6 后,它對我有用
程序.cs
builder.Services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"), sqlOption =>
sqlOption.UseNetTopologySuite()
));
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite" Version="6.0.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.4">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.