0

我正在尝试使用 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 被自动用作密钥,为什么会出现这个错误?

谢谢,

4

0 回答 0