在 Entity Framework Select 中使用 SQL 函数
我正在使用 PostgreSQL 的 Devart EF-4 提供程序。
在我的一个数据库表中,我有一个名为 the_geom 的列,它是一个包含多边形的 PostGis 几何类型列。长话短说,PostGis 使用自己的二进制格式来存储几何值,因此为了使其可以在我的应用程序中使用,我需要将其转换为众所周知的二进制 (WKB),这是几何的标准化二进制表示形式。在标准 SQL 中,通过选择 with 可以很容易地实现这一点
select asbinary(the_geom) from mytable
。最后一个问题是: 在实体框架中,如何指定使用 asbinary() 函数来选择 the_geom 列?
I am using the Devart EF-4 provider for PostgreSQL.
In one of my db tables, I have a column called the_geom which is a PostGis Geometry type column holding a polygon. Long story short, PostGis uses its own binary format to store geometry values, so for it to be usable in my application i need to convert it to Well-Known-Binary (WKB) which is a standardized binary representation of geometry. This can be achieved quite easy in standard SQL by selecting in with
select asbinary(the_geom) from mytable
The final question is this:
How do I, in Entity Framework, specify to use the asbinary() function to select the_geom column?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以在
System.Data.Objects.SqlClient
命名空间中的SqlFunctions
类中的 Linq 查询中使用大量 Sql Server 函数。在 Postgre 的 Linq 提供程序库中查找类似内容,如果找不到,请添加一个值为
asbinary(the_geom)
的计算列,并将该列映射到 EF 中。如果你看看反编译的代码,你甚至可以这样写,
There is a bunch of Sql Server functions that you can use in Linq querys in
SqlFunctions
class inSystem.Data.Objects.SqlClient
namespace.Look for sth like that in your Linq Provider library for Postgre, and if you can't find add a computed column with the value of
asbinary(the_geom)
and map that column in EF.You may even could write sth like that if you look at the decompiled code,