Linq 和不支持的数据类型(地理)

2023-12-13

所以,Linq 不支持Geography数据类型,这给可爱的“将表拖到 Linq 设计表面”开发模型的工作带来了麻烦。

有什么方法可以扩展 Linq 以使用 Geography 数据类型吗? 或者,每当我需要使用地理列时,我是否需要构建一个全新的数据层和一组查询?

我已经被这个问题困扰了几天,无法弄清楚是否可能。


将列转换为 varbinary(max),Linq to SQLcan处理。避免在每个查询中执行此操作的一种方法是添加定义为的计算列CAST(GeographyColumn AS varbinary(max)).

一旦你拥有了byte[]数据,您可以编写一个简短的实用方法将其转换为实际的Microsoft.SqlServer.Types.SqlGeography类使用MemoryStreamIBinarySerialize.Read/Write方法。

据我所知,如果您需要使用任何 CLR 类型(包括地理、几何、hierarchyid 和任何自定义类型),这是唯一可行的解​​决方案 - Linq 并不“原生”支持其中任何类型。编写所有样板代码有点痛苦,但是您可以通过一些扩展方法使其变得更容易。

您将无法以这种方式查询列;然而,你可以使用我所说的中途Linq 动态查询库。您不会拥有智能感知或其他一些 Linq 功能,但它仍然是可组合的,因此比手工制作每个查询更好,并且您可以获得强类型结果。

更新:我找到了一个稍微干净的解决方案here。您可以这样使用设计器;只需添加SqlGeography将属性包装到分部类并使用STGeomFromWKB方法与SqlBytes班级。不过,这仍然无法为您提供内联查询功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linq 和不支持的数据类型(地理) 的相关文章

  • linq-to-sql 或 linq 在什么时候向数据库发送请求

    我想让我的查询更好 但一直无法找到当查询发送到数据库时列出的资源 DBContext db new DBContext Order order from o in db where o OrderID qwerty asdf xcvb se
  • 更高效的数据库访问

    我是数据库和 linq 的新手 所以我的问题可能被认为是微不足道的 我目前在每个类中启动所有数据库请求 DataClassesDataContext db new DataClassesDataContext 然后 我继续在该方法中发出我需
  • 没有河流的世界地图与 matplotlib / 底图?

    有没有一种方法可以用底图 或者没有底图 如果有其他方法的话 绘制大陆的边界 而不会出现那些烦人的河流 尤其是那段刚果河 连入海口都没有 令人不安 编辑 我打算进一步在地图上绘制数据 就像在底图库 http matplotlib org ba
  • 无法创建“匿名类型”类型的常量值。此上下文中仅支持基本类型或枚举类型

    我对linq和实体框架 我正在尝试解决以下问题为何不起作用的问题 产生的错误是 无法创建 匿名类型 类型的常量值 在此上下文中仅支持原始类型或枚举类型 我已经尝试了很多不同的方法 但仍然收到与原始类型相关的错误 如果有人能看一下下面的代码并
  • 如何使用 Linq to SQL 从存储过程中检索多行?

    我最近开始使用 Linq to SQL 想知道如何通过执行存储过程来获取多行 这是我想要使用的一个简单的 sp CREATE PROCEDURE gsp ftsmultiple SearchKey varchar 100 AS BEGIN
  • 重构 LINQ IQueryable 表达式以删除查询的重复部分

    我有一些具有冗余的 linq 查询 我想分解出一段代码 这些是 IQueryable 的连接表达式 重要的是我不会导致查询比没有重构的情况更早进行评估 这是一个简化的查询 var result from T in db Transactio
  • LINQ to SQL 选择“按多列区分”并返回整个实体

    我正在使用第三方数据库 需要为我正在研究的特定市场选择一组不同的数据 每个市场的数据都是相同的 因此将其全部引入是多余的 并且我不想硬编码围绕它的任何逻辑 因为我们正在与供应商合作解决问题 但我们需要一个修复程序与供应商合作修复以及数据库当
  • 使用(linq to sql)更新错误

    我有两个表 通过外键 CarrierID 绑定 Carrier CarrierID CarrierName CarrierID 1 CarrierName DHL CarrierID 2 CarrierName Fedex Vendor V
  • 无法创建常量值 - 只允许基本类型或枚举类型

    我在这里看到了一些与此异常相关的问题 但没有一个让我理解问题的根本原因 所以这里我们还有一个 var testquery from le in context LoanEMIs Include LoanPmnt join lp in con
  • SQL Server CE 不兼容的数据库版本

    我有一个 SQL Server CE 4 0 数据库 sdf文件 当我尝试从我的应用程序 WPF 对数据库进行查询时 出现以下错误 数据库版本不兼容 如果这是兼容文件 请运行修复 其他情况请参考文档 数据库版本 4000000 请求的版本
  • DataContext.CreateDatabase() 表示文件已存在 - 但事实并非如此

    这可能是 Windows 7 问题 但调用 using var context new DataClassesDataContext if context DatabaseExists context CreateDatabase 结果出现
  • 如何查询多对多表(一个表的值成为列标题)

    给定此表结构 我想展平多对多关系 并将一个表的名称字段中的值设置为列标题 并将同一表中的数量设置为列值 目前可行的想法是将值放入字典 哈希表 中并用代码表示这些数据 但我想知道是否有 SQL 方法可以做到这一点 我还使用 Linq to S
  • 在数据库中建模抽象基类和子类

    我有4个子类 Video Image Note and Form 每一项都包含不同类型的数据 例如 Image类包含磁盘上图像文件的路径和图像属性 以及Form类包含表单字段值 然而 每个项目之间的共同元素是 GPS 坐标和航向 因此我有以
  • 使用 sqlite 离线存储数据的 Web 表单应用程序

    我有一个 asp net Web 表单应用程序 它在远程服务器上使用 sql server 2005 所有控件均使用 linq to sql 绑定 我正在尝试提供完整的离线功能 所以我想知道是否可以像 sql server db 一样创建一
  • 领域驱动设计 (Linq to SQL) - 如何删除聚合的某些部分?

    我似乎对整个 DDD LinqToSql 业务感到有点困惑 我正在使用 POCOS 和 linq to sql 构建一个系统 并且我有聚合根的存储库 因此 例如 如果您有 Order gt OrderLine 类 那么您就有了 Order
  • 使用 PostGIS 拥有通用 GEOGRAPHY 列

    在 PostgreSQL 9 PostGIS 1 5 中 有没有办法创建 通用 GEOGRAPHY 列 我指的是接受 POINT 以及 POLYGON LINESTRING 等的列 到目前为止 我只在 Internet 上看到过像 GEOG
  • 多边形内的 SQL 地理点在 STIntersect 上不返回 true(但使用 Geometry 返回 true)

    我不想仅仅为了在 STIntersect 中返回 true 而将地理数据转换为几何图形 下面是 SQL 中的代码 DECLARE point GEOGRAPHY GEOGRAPHY Point 1 1 4326 DECLARE polygo
  • SQL Server 2008 GUID 列全为 0

    我希望这是我做的一个简单的傻事 我的数据库中有一个表 设置如下 column name widget guid data type uniqueidentifier allow nulls false default value newid
  • 如何使用 Linq to Sql 修剪值?

    在数据库中 我有一个名为 联系人 的表 名字和其他此类字符串字段设计为使用 Char 数据类型 不是我的数据库设计 我的对象 Contact 映射到属性中的字符串类型 如果我想做一个简单的测试 通过 id 检索 Contact 对象 我会这
  • Linq to SQL DataContext 的多个/单个实例

    我有一个项目 其中有许多不同的类查询和修改一组公共表中的数据 我已经设置了一个 dbml 文件 它为我们提供了 DataContext 类 我的问题是 DataContext 的单个实例是否应该由所有对象使用 或者多个实例是否可以安全使用

随机推荐

  • 如何使用 pymongo 对 mongodb 进行排序

    我尝试在查询 mongoDB 时使用排序功能 但失败了 相同的查询在 MongoDB 控制台中有效 但在这里不行 代码如下 import pymongo from pymongo import Connection connection C
  • iOS canOpenURL 返回 true,但应用程序未安装(facebook)

    目前 我想检查我的应用程序是否安装了 Facebook 应用程序 我在做什么 UIApplication shared canOpenURL URL string fb enter code here 在 URL 方案中 我添加了 fb 所
  • C# 中的静态类有什么优点/缺点?

    我正在为我的学校作业编写一个小游戏 该游戏是一个简单的 2D 游戏 有怪物 物品和子弹 基本上你跑来跑去并试图收集所有的物品硬币 怪物试图阻止你 你可以用你收集的子弹击落它们 很简单 问题是 我已将怪物 物品 墙壁 玩家和子弹添加到名为 L
  • 底图上的“map.scatter”不显示标记

    我有一张德国地图和几个城市的坐标 plot正确显示点 我想用scatter相反 为了能够相对于其他变量对市场进行着色 然后显示colorbar 代码在控制台中运行 但是当我替换时 这些点不可见map plot with map scatte
  • 如何使用java生成azure blob存储SAS url?

    我想生成一个 SAS URL 我可以与用户共享该 URL 以连接到存储帐户并将文件上传到任何位置 我如何使用 java api 生成 SAS url 我找到了一份文档 但看起来所有 api 都已贬值https azuresdkdocs bl
  • 索引 grouped_df 对象

    尝试选择类对象的列grouped df按索引给出 错误 索引超出范围 例如 x lt mtcars gt group by am gear gt summarise each funs sum disp hp drat class x gr
  • 如何动态更改正在查看的网站的 CSS 样式表?

    我有一个网站 用户可以使用其中的向导生成自己的 Codeigniter 网站 用户将提供模块 字段和功能详细信息 根据用户输入 将生成一个网站并将其部署在我的网站上 并在用户下载之前向用户展示演示 一切正常 现在我计划允许用户在预览生成的网
  • 使用 SSIS 包中的 Python 脚本预测数据

    我知道 Microsoft 在其 SQL Server 机器学习服务中包含了 Python 但这仅适用于 SQL Server 2017 及更高版本 而我的服务器目前无法满足这一要求 在这种情况下 我想完全在 SSIS 中部署我的生成预测与
  • 如何在我的 Flask 应用程序中连接浏览器的麦克风?

    我正在使用语音识别模块通过语音识别搜索查询 然后打开显示查询结果的 google chrome 页面 基本上 它是谷歌语音搜索的替代品 但它是通过终端启动的 但我想把它做成一个网络应用程序 我创建了烧瓶应用程序 搜索 目录 search p
  • 如何在asp.net core项目中获取OleDb读取excel

    有没有办法读取excel数据ASP NET Core 基于 Net Core 构建 我无法参考OleDB in project json我的 net core 项目 还有其他方法可以做到这一点吗 今天你真的需要 OleDB 来读取 Exce
  • 在 Cocoa 中获取“下一个上午 7 点将会发生”的 NSDate 表示的最简单方法是什么?

    我想我可以通过使用来实现我想要的NSCalendar and NSDateComponents 但会运行如下所示的内容 得到 现在 创建一个NSDateComponents现在起 如果 现在 是上午 7 点之前 则使用今天的日期 If no
  • Angular UI Datepicker 限制每月天数

    我正在使用角度日期选择器 http angular ui github io bootstrap datepicker 目前它被硬编码为显示 42 天或 6 周 我想知道如何在 ui bootstrap 0 13 1 js 中覆盖 即角度装
  • init] 返回过去一小时的日期?

    当我打电话时 NSDate now NSDate alloc init 为了获取当前日期和时间 我使用以下命令进行检查 NSLog Date now now 输出的日期是过去一小时 2010 10 08 12 04 38 227 MiniB
  • ActionChip 标签上出现意外的灰色下划线

    在我的一个动作芯片上 我在标签上看到了这条灰色下划线 仅供参考 这是 Flutter Web 它似乎只发生在 Chrome Android 上 而不会发生在 iOS Safari 或桌面 Chrome 上 操作芯片充当过滤器按钮 单击该按钮
  • 如何让 Android BroadcastReceiver 与 AlarmManager 配合使用?

    我有以下代码来发布意图 alarmMgr AlarmManager getApplicationContext getSystemService Context ALARM SERVICE Intent intent new Intent
  • 将 gsutil 输出传送到文件

    问候 StackOverflow 我正在 Windows 上开发一个小项目 它需要读取 GSUTIL 复制函数的输出 问题是 复制功能的输出似乎无法通过标准输出工作 此外 GSUTIL 的行为不一致 管道输出不能与复制函数一起使用 但使用列
  • 如何在不使用绘图的情况下将范围保存到图像文件?

    这个条件非常重要 因为绘图以不可接受的方式拉伸我的图表 如果 MikeT 的评论是正确的 并且您正在尝试保存 Scope 块中显示的图像 则可以通过以下几种方法来执行此操作 打印示波器窗口的内容通过单击Print图标 范围工具栏上最左边的图
  • 无需云功能或 Firebase 控制台的 Firebase 通知

    有没有办法在不使用云功能或 firebase 控制台的情况下向设备发送通知 例如 就像在聊天应用程序中发送消息时一样 其他用户应该像在 WhatsApp 中一样收到收到消息的通知 谢谢 这取决于你所说的 没有云功能 是什么意思 FCM 中没
  • Android Marshmallow 位置权限处理

    我正在研究 Android Marshmallow 运行时权限 我向用户请求位置权限 假设他已允许获取位置 并且我已开始获取位置 但现在用户已拒绝应用程序设置的权限 现在应用程序已经崩溃了 我该如何处理 请帮忙 这对我有用 在应用程序的 S
  • Linq 和不支持的数据类型(地理)

    所以 Linq 不支持Geography数据类型 这给可爱的 将表拖到 Linq 设计表面 开发模型的工作带来了麻烦 有什么方法可以扩展 Linq 以使用 Geography 数据类型吗 或者 每当我需要使用地理列时 我是否需要构建一个全新