Npgsql PostgisMultiPolygon实体类型配置实体框架

时间:2016-12-20 09:24:32

标签: entity-framework postgresql postgis npgsql

我有一个名为cities

的postgis表
public class City{
    public int Id { get; set; }
    public string Name { get; set; }
    public PostgisMultiPolygon Geometry { get; set; }
}

我想使用Entity Framework来获取数据。我创建了这样的实体类型配置。

public class MyConvention : EntityTypeConfiguration<City>
{
    public MyConvention()
    {
        ToTable("cities", "public");

        Property(p => p.Id).HasColumnName("gid");
        Property(p => p.Name).HasColumnName("name");
        Property(p => p.Geometry).HasColumnName("geom");
    }
}

但是Geometry属性会抛出错误。

  

类型&#39; NpgsqlTypes.PostgisMultiPolygon&#39;必须是不可空的   值类型,以便将其用作参数&#39; T&#39;在通用类型或   方法   &#39; System.Data.Entity.ModelConfiguration.Configuration.StructuralTypeConfiguration.Property(System.Linq.Expressions.Expression&GT;)&#39;

如果我删除约定,并将属性名称设置为与数据库列名称相同。

public class City{
    public int Id { get; set; }
    public string Name { get; set; }
    public PostgisMultiPolygon geom { get; set; }
}

引发了其他错误:

  

(6,10):错误3004:从行开始映射片段时出现问题   6:没有为Set Cities中的属性City.geom指定映射。一个   具有密钥(PK)的实体在以下情况下不会往返:实体是类型   [PostgisEntityFramework.City]

0 个答案:

没有答案