.net 在实体框架选择中使用SQL函数

.net 在实体框架选择中使用SQL函数,.net,entity-framework-4,.net,Entity Framework 4,我正在使用PostgreSQL的Devart EF-4提供程序 在我的一个db表中,我有一个名为_geom的列,它是一个PostGis几何类型的列,包含一个多边形。长话短说,PostGis使用自己的二进制格式来存储几何体值,因此为了在我的应用程序中可用,我需要将其转换为众所周知的二进制(WKB),这是几何体的标准二进制表示形式。在标准SQL中,通过选择in with可以非常容易地实现这一点 select asbinary(the_geom) from mytable 最后一个问题是: 在实体框

我正在使用PostgreSQL的Devart EF-4提供程序

在我的一个db表中,我有一个名为_geom的列,它是一个PostGis几何类型的列,包含一个多边形。长话短说,PostGis使用自己的二进制格式来存储几何体值,因此为了在我的应用程序中可用,我需要将其转换为众所周知的二进制(WKB),这是几何体的标准二进制表示形式。在标准SQL中,通过选择in with可以非常容易地实现这一点

select asbinary(the_geom) from mytable
最后一个问题是:
在实体框架中,如何指定使用asbinary()函数来选择_geom列?

System.Data.Objects.SqlClient
命名空间中的
SqlFunctions
类的Linq查询中可以使用大量Sql Server函数

在Postgre的Linq提供程序库中查找类似的内容,如果找不到,请添加一个值为
asbinary(the_geom)
的计算列,并将该列映射到EF中

如果你看反编译的代码,你甚至可以写这样的东西

public static class SqlFunctions
{
    // Methods
    [EdmFunction("SqlServer", "STR")]
    public static string StringConvert(double? number)
    {
    }
}

我找不到那样的东西。我通过将该值存储为已知文本(WKT)和WKB来解决问题。然后每次WKT更新时,我都使用触发器更新WKB列。这是多余的,但能完成任务。