postgresql .NET Core:不是有效的成员访问表达式

ivqmmu1c  于 5个月前  发布在  PostgreSQL
关注(0)|答案(1)|浏览(54)

在.NET Core中,我有一个这样的模型类:

public class City
{
    public Geometry Center { get; set; }
    ...
}

字符串
通过行查询,我从Postgres获取数据:

var result = await _context.Cities.FromSql($"SELECT jt.* FROM (SELECT ARRAY_AGG( p.\"relatedCities\") AS unique_vals FROM public.\"Provinces\" as p WHERE p.\"externalId\" = {provId}) q LEFT JOIN public.\"Cities\" jt ON jt.\"externalId\" = ANY(q.unique_vals);").ToListAsync();

return Ok(result);


当我的结果返回给消费者时,我想发送坐标而不是几何。我使用NetTopologySuite.Geometries
我在dbcontext类中有OnModelCreating方法。我添加了:

modelBuilder.Entity<City>()
    .Property(e => e.Center.Coordinate);


但我得到了这个错误:
Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]
执行请求时发生未处理的异常。
System.ArgumentException:表达式“e => e.Center.Coordinate”不是有效的成员访问表达式。该表达式应表示简单属性或字段访问:“t => t. MyProperty”。(参数“memberExclusion”)
在Microsoft. MicrosoftFrameworkCore.Infrastructure.ExpressionExtensions. GetInternalQueryAccess [TenderInfo](LambdaExpression memberLambdaExpression)

carvr3hs

carvr3hs1#

试着做:

modelBuilder.Entity<City>().OwnsOne(c => c.Center, owned => {
    owned.Property(e => e.Coordinate); 
});

字符串

相关问题