【发布时间】:2010-08-27 06:15:04
【问题描述】:
我在将表格加载到设计器时遇到了一些问题。 我收到以下错误。
一个或多个选定项包含设计器不支持的数据类型
假设是表中使用的地理类型导致此错误,我是否正确?
任何指针都非常感谢。
【问题讨论】:
标签: visual-studio-2010 linq-to-sql sqlgeography
我在将表格加载到设计器时遇到了一些问题。 我收到以下错误。
一个或多个选定项包含设计器不支持的数据类型
假设是表中使用的地理类型导致此错误,我是否正确?
任何指针都非常感谢。
【问题讨论】:
标签: visual-studio-2010 linq-to-sql sqlgeography
要纠正这个错误:
或者看这篇文章The Missing Linq to SQL Spatial,这篇文章提供了如何在Linq to SQL中使用SQL Server空间数据类型-Geography和Geometry-的提示和技巧
【讨论】:
查看下面的文章/答案以获取详细信息:
Is it possible to use SqlGeography with Linq to Sql?
Linq to SQL 不支持空间类型。支持不是“不是很好”——它不存在。
您可以将它们读取为 BLOB,但不能通过将 Linq 中的列类型简单地更改为 SQL 来做到这一点。您需要使用 CAST 语句在数据库级别更改查询以将列作为 varbinary 返回。您可以通过添加计算的 varbinary 列在表级别执行此操作,Linq 会很高兴地将其映射到 byte[]。
【讨论】:
我有一个项目(一个小项目,已获批准),该项目对空间类型提出了新的要求。我决定看看将实体框架从 LINQ 升级到 SQL 是多么容易。
我用了不超过 30 分钟。确保在开始之前有源代码管理备份。
Install-Package EntityFramework -Version {pick one}.dbml 文件metadata=res://*/;provider=System.Data.SqlClient;provider connection string='Data Source=.\SQLEXPRESS; Initial Catalog=MyDataBase; Integrated Security=True'
Insert/DeleteOnSubmit 和EF 的Add/Remove 或Add/RemoveRange 的差异。事务范围的工作方式可能不同(考虑使用 context.Database.BeginTransaction 而不是事务范围)。就是这样。这比我预期的要容易得多,现在我可以毫不费力地使用空间类型了。
【讨论】: