我正在尝试使用 EF5 beta 2、MVC 和 Visual Studio 2011 / .NET 4.5 使用空间类型来保存位置信息。我正在使用代码优先方法,并且一直在关注这些教程:
使用 MVC 开始使用 EF - http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp -net-mvc-应用程序
EF 空间类型演练 - http://msdn.microsoft.com/en-us/hh859721
这是我的模型:
public class Location
{
public int LocationID { get; set; }
public string Name { get; set; }
public DbGeography CGLocation { get; set; }
public string LocationNotes { get; set; }
}
但是,当我尝试创建控制器时,出现错误:
Unable to retrieve metadata for 'MVCSpatialTest.Models.Location'. One or more validation errors were detected during model generation:
System.Data.Edm.EdmEntityType::EntityType 'DbGeography' has no key defined. Define the key for this EntityType.
System.Data.Edm.EdmEntitySet: EntityType: EntitySet
DbGeographies is based on type DbGeography that has no keys defined.
如果我从我的模型中取出“public DbGeography CGLocation { get; set; }”,一切正常,我的数据库、控制器和视图都已创建。
我的印象是 LocationID 被自动用作密钥,为什么会出现这个错误?
谢谢,