我首先使用的是Entity Framework 6.1代码,我正在尝试在DbGeography
类型的列上创建索引,因为我的应用主要是以位置为中心,所以没有索引不是一个选项。
以下是我班上的相关部分:
public class Post
{
...
[Required, Index(Order = 1)]
public DateTime CreateDate { get; set; }
[Required, Index(Order = 2)]
public DbGeography Location { get; set; }
...
}
然而,当我运行我的应用程序(我正在使用SQL Azure)时,我得到:
Column 'Location' in table 'dbo.Posts' is of a type that is invalid for use as a key column in an index or statistics.
如何在不关闭空间索引的情况下解决此问题?
答案 0 :(得分:1)
不幸的是,空间类型不能用作实体框架中的实体密钥,因为它们像过滤索引一样工作。这篇文章包含有关使用Spatial Types in the Entity Framework的更多信息。