gpt4 book ai didi

entity-framework-core-2.1 - Entity Framework Core - EF Core 2.2 - 'Point.Boundary' 是接口(interface)类型 ('IGeometry' )

转载 作者:行者123 更新时间:2023-12-04 10:06:36 31 4
gpt4 key购买 nike

我正在尝试使用 EF Core 2.2 的新功能。它基于以下文章。 “宣布 Entity Framework 核心 2.2”
https://blogs.msdn.microsoft.com/dotnet/2018/12/04/announcing-entity-framework-core-2-2/

我安装了以下 Nuget 包。

enter image description here

我将以下内容添加到我的模型中。

using NetTopologySuite.Geometries;


//New as of EF.Core 2.2
//[Required]
//[NotMapped]
public Point Location { get; set; }

enter image description here

在我的应用程序启动期间,我的数据库上下文中的以下行出现以下错误:
数据库.EnsureCreated();

enter image description here

System.InvalidOperationException
H结果=0x80131509
Message=属性“Point.Boundary”属于接口(interface)类型(“IGeometry”)。如果它是导航属性,则通过将其转换为映射实体类型手动配置此属性的关系,否则使用“OnModelCreating”中的 NotMappedAttribute 或“EntityTypeBuilder.Ignore”忽略该属性。
源=Microsoft.EntityFrameworkCore

最佳答案

您需要调用UseNetTopologySuite() .这里的例子:

public class ApplicationDbContext : IdentityDbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{

}

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
IConfigurationRoot configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
var connectionString = configuration.GetConnectionString("DefaultConnection");
optionsBuilder.UseSqlServer(connectionString, opts => opts.UseNetTopologySuite());
}
public DbSet<Test> Tests { get; set; }
}


public class Test
{
public int Id { get; set; }
public Point Location { get; set; }
}

我遇到了这个问题,因为我有一个 if (!optionsBuilder.IsConfigured)我的 OnConfiguring 中的所有内容.我必须删除它才能获得 add-migrations去工作。

关于entity-framework-core-2.1 - Entity Framework Core - EF Core 2.2 - 'Point.Boundary' 是接口(interface)类型 ('IGeometry' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53688803/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com