DbGeography атрибутом entitytype '' нет ключа

долгое время слушатель, первый раз вызывающий абонент (наконец, сделал учетную запись здесь!)...

Я использую Visual Studio 2013 С .NET 4.5.1 и Entity Framework 6 (окончательные версии, а не RC или бета-версия).

при попытке добавить свойство DbGeography в мою сущность я получаю эту ошибку при выполнении:

    One or more validation errors were detected during model generation:
    Geocoder.DbGeography: : EntityType 'DbGeography' has no key defined.
    Define the key for this EntityType.
    DbGeographies: EntityType: EntitySet 'DbGeographies' is based on type 'DbGeography' that has no keys defined.

Я уже подтвердил, что у меня нет ссылок на более старые версии Entity Framework (обсуждается здесь). Я использую этот пост и эта статья MSDN для примеров / информации, поскольку это мой первый набег на пространственные типы в .NET (и SQL Server, если на то пошло).

вот моя сущность:

public class Location
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Address1 { get; set; }
    public string Address2 { get; set; }
    public string City { get; set; }
    public virtual State State { get; private set; }
    public string ZipCode { get; set; }
    public string ZipCodePlus4 { get; set; }
    public DbGeography Geocode { get; set; }
    public Hours Hours { get; set; }
    public virtual ICollection<Language> Languages { get; private set; }
    public virtual OfficeType OfficeType { get; private set; }

    [JsonIgnore]
    public virtual ICollection<ProviderLocation> Providers { get; private set; }
}

что я делаю не так?

1 ответов


это оказалось противоположностью тому, что я прочитал из собственного ответа Microsoft о подобной проблеме в Codeplex здесь и документации. Я неправильно истолковал? Обе эти ссылки указывают на то, что в EF 6 тип данных DbGeography был перемещен из системы.Данные.Сущность.Пространственная просто система.Данные.Пространственно, но верно обратное.

сменил

using System.Data.Spatial;

to

using System.Data.Entity.Spatial;

и это работает.