c# - EntityType ''DbGeography'' no tiene una clave definida
.net entity-framework (1)
Esto resultó ser lo contrario de lo que leí de la propia respuesta de Microsoft sobre un problema similar en Codeplex here , e incluso su documentación aquí . ¿Lo interpreté mal? Ambos enlaces indican que en EF 6, el tipo de datos DbGeography se movió de System.Data.Entity.Spatial a solo System.Data.Spatial, pero lo contrario parece cierto.
Cambié
using System.Data.Spatial;
a
using System.Data.Entity.Spatial;
y funciona.
Oyente desde hace mucho tiempo, la persona que llama por primera vez (¡finalmente hizo una cuenta aquí!) ...
Estoy usando Visual Studio 2013 con .NET 4.5.1 y Entity Framework 6 (versiones finales, no RC o beta).
Cuando intento agregar una propiedad DbGeography a mi entidad, recibo este error al ejecutarlo:
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.
Ya confirmé que no tengo referencias a versiones anteriores de Entity Framework (se explica here ). He estado usando esta publicación y este artículo de MSDN para obtener ejemplos / información, ya que esta es mi primera incursión en tipos espaciales en .NET (y SQL Server, en realidad).
Aquí está mi entidad:
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; }
}
¿Qué estoy haciendo mal?