Я пытаюсь выполнить миграцию в Entity Framework Core 2.2, но получаю некоторые странные ошибки. Это должно работать , поскольку в документации ничего не говорится о коде сопоставления или около того.
Этокоманда:
dotnet ef migrations add InitialCreate
приводит к этой ошибке:
Свойство Point.Boundary имеет интерфейстип ('IGeometry').Если это свойство навигации, вручную настройте отношение для этого свойства, приведя его к сопоставленному типу сущности, в противном случае игнорируйте свойство с помощью NotMappedAttribute или 'EntityTypeBuilder.Ignore' в 'OnModelCreating'.
Iне понимаю это.У меня есть сущность, контекст и все необходимые зависимости, включая EF Core 2.2.Как мне это решить?
Файл проекта:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<DockerComposeProjectPath>..\docker-compose.dcproj</DockerComposeProjectPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.0" />
<PackageReference Include="NetTopologySuite" Version="1.15.1" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="4.0.1" />
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.0.2105168" />
</ItemGroup>
Файл модели
using System.ComponentModel.DataAnnotations;
using NetTopologySuite.Geometries;
namespace WebApplication1.Models
{
public class Item
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
[Required]
public Point Location { get; set; }
}
}
Файл контекста
using System;
using Microsoft.EntityFrameworkCore;
using WebApplication1.Models;
namespace WebApplication1
{
public class ItemContext : DbContext
{
public ItemContext(DbContextOptions<ItemContext> options) : base(options)
{
Console.WriteLine("Context created");
}
public DbSet<Item> Items { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
Console.WriteLine("OnModelCreating");
}
}
}
Консоль: