我在将表格加载到设计器中时遇到了一些问题。 我收到以下错误。
一个或多个所选项目包含设计者不支持的数据类型
假设它是导致此错误的表中使用的地理类型,我是否正确?
任何指针都非常赞赏。
答案 0 :(得分:2)
要更正此错误:
或查看本文The Missing Linq to SQL Spatial,本文提供有关如何在Linq to SQL中使用SQL Server空间数据类型-Geography和Geometry的提示和黑客
答案 1 :(得分:1)
检查以下文章/答案的详细信息:
Is it possible to use SqlGeography with Linq to Sql?
Linq to SQL不支持空间类型。支持不是“不太好” - 它不存在。
您可以将它们作为BLOB读取,但只需将Linq中的列类型更改为SQL即可完成此操作。您需要在数据库级别更改查询,以使用CAST语句将列作为varbinary返回。您可以通过添加计算的varbinary列在表级别执行此操作,Linq将很乐意将其映射到byte []。
答案 2 :(得分:0)
我有一个项目(一个小项目,被授予),它对空间类型有了新的要求。我决定看看将实体框架从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
而不是事务范围)。就是这样。它比我想象的容易得多,现在我可以使用空间类型而不需要任何诡计。