Ответ 1
Вам нужно изменить GMCNumber
на свойство, а не на поле.
Другой 'Entity Type' x 'не имеет определенного ключа', но я установил атрибут [Key]
для свойства, поэтому я немного запутался.
Здесь мои сущности и контекстные классы:
namespace DoctorDB.Models
{
public class Doctor
{
[Key]
public string GMCNumber;
[Required]
public string givenName;
[Required]
public string familyName;
public string MDUNumber;
public DateTime MDUExpiry;
public string MDUCover;
}
public class DoctorContext : DbContext
{
public DbSet<Doctor> Doctors { get; set; }
}
}
Когда я иду для создания своего контроллера, я выбрал его с помощью методов Entity Framework, используя этот объект и контекст:
и я получаю эту ошибку:
Моя единственная мысль заключается в том, нельзя ли успешно использовать [Key] для свойства string. Если вы не можете так справедливо, я буду работать над этим, но я был бы признателен, если бы кто-то мог подтвердить это так или иначе.
Вам нужно изменить GMCNumber
на свойство, а не на поле.
Чтобы уточнить эту строку:
public string GMCNumber;
должно стать:
public string GMCNumber { get; set; }
Я столкнулся с тем же сообщением об ошибке, когда я определил свойство как личное.
Я столкнулся с этим сообщением, столкнувшись с аналогичной проблемой сегодня. Проблема заключалась в том, что я пытался создать эшафот после добавления атрибута [Key] к моей модели и без компиляции. После того как я скомпилирован с атрибутом [Key], строительные леса генерируются просто отлично.
Я получаю ту же ошибку, когда я использую свойство, которое не является строкой для [Key].
Здесь воспроизводится:
public class Doctor
{
[Key]
public Identity ID { get; set; }
public string Address { get; set; }
}
public class Identity
{
[Key]
public string GivenName { get; set; }
[Key]
public string FamilyName { get; set; }
}
Ошибка возникает не во время сборки, а при загрузке сайта:
Исключение типа "System.InvalidOperationException" произошло в System.Web.OData.dll, но не было обработано в коде пользователя
Дополнительная информация: Объект "Доктор" не имеет определенного ключа.