Entity Framework 4 и Code First CTP 5 - отсутствует ключ - PullRequest
3 голосов
/ 08 февраля 2011

Может кто-то разобраться в этой ошибке?

При генерации модели обнаружена одна или несколько ошибок проверки:

System.Data.Edm.EdmEntityType:: EntityType «Адрес» не имеет определенного ключа. Определите ключ для этого EntityType . System.Data.Edm.EdmEntitySet: EntityType: адреса EntitySet основаны на типе Address, для которого не определены ключи.

Я определил эту сущность:

public class Address
{
    [Key]
    public int ID;

    [Required]
    [MinLength(1)]
    [MaxLength(200)]
    public string Address1 { get; set; }

    [MinLength(1)]
    [MaxLength(200)]
    public string Address2 { get; set; }

    [Required]
    [MinLength(1)]
    [MaxLength(10)]
    public string Zip { get; set; }

    [MinLength(1)]
    [MaxLength(100)]
    public string Province { get; set; }

    public virtual US_State State { get; set; }

    [Required]
    public virtual Country Country { get; set; }
}

Мой вопрос: как ошибка имеет какой-либо смысл для класса, который имеет аннотацию данных атрибута Key, а также обычное имя идентификатора для своего PK.

Я думаю, этот класс удовлетворяет всем правилам, необходимым для создания из него значимой сущности.

1 Ответ

8 голосов
/ 09 февраля 2011

Как упомянул Крейг, создание ID свойства решит вашу проблему.

public int ID { get; set; }

Кроме того, вам не нужен атрибут [Key] в ID, он будет распознаваться как идентификатор объекта (т.е. первичный ключ) по коду, который сначала основан на соглашениях.

...