猿问

在 Entity Framework Core 中使用 Npgsql.NodaTime

我正在使用 Entity Framework Core 通过 Npgsql 数据提供程序处理 PostgreSQL 数据库。根据日期/时间映射指南,建议使用 NodaTime 进行 PostgreSQL 日期/时间映射。在设置指南中,以下代码启用 NodaTime 类型映射:


protected override void OnConfiguring(DbContextOptionsBuilder builder)

{

    builder.UseNpgsql("Host=localhost;Database=test;Username=npgsql_tests;Password=npgsql_tests",

        o => o.UseNodaTime());

}


但是没有UseNodaTime()扩展方法NpgsqlDbContextOptionsBuilder。我搜索了npgsql源代码,但没有找到该扩展方法。我发现的唯一一个是public static INpgsqlTypeMapper UseNodatime(this INpgsqlTypeMapper mapper)在这个文件中。


我的.csproj:


<Project Sdk="Microsoft.NET.Sdk.Web">


  <PropertyGroup>

    <TargetFramework>netcoreapp2.1</TargetFramework>

  </PropertyGroup>


  <ItemGroup>

    <Folder Include="wwwroot\" />

  </ItemGroup>


  <ItemGroup>

    <PackageReference Include="Microsoft.AspNetCore.App" />

    <PackageReference Include="Microsoft.AspNetCore.Cors" Version="2.1.0-rc1-final" />

    <PackageReference Include="Microsoft.DotNet.Watcher.Tools" Version="2.0.2" />

    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.0-rc1-final" />

    <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="2.1.0-rc1" />

    <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite" Version="2.1.0-rc1" />

    <PackageReference Include="Npgsql.NodaTime" Version="1.0.0-rc1" />

  </ItemGroup>


</Project>


慕婉清6462132
浏览 296回答 2
2回答

慕森王

您需要将所有内容升级到 4.0.0-rc1 版本并安装Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime包。我已经在这里报告了这个问题

慕桂英3389331

链接中的文档不正确(典型的预发布混乱)。它指出您需要Npgsql.NodaTime包,而实际上您需要Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime包:<PackageReference&nbsp;Include="Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime"&nbsp;Version="2.1.0-rc1"&nbsp;/>
随时随地看视频慕课网APP
我要回答