Дана модель:
public class Customer
{
[Key]
public int Id { get; set; }
[DisplayName("Имя")]
public string Name { get; set; }
public IList<Address> Addresses { get; set; }
public IList<Phone> Phones { get; set; }
public IList<Email> Emails { get; set; }
public IList<ProfileUpdate> ProfileUpdates { get; set; }
[DisplayName("Заметка")]
public string Notes { get; set; }
public bool Active { get; set; } // активен ли аккаунт
}
public class Street
{
[Key]
public int Id { get; set; }
[DisplayName("Адрес 1")]
public string Street1 { get; set; }
[DisplayName("Адрес 2")]
public string Street2 { get; set; }
}
public class Phone
{
[Key]
public int Id { get; set; }
public string Type { get; set; }
[DisplayName("Телефон")]
public long Value { get; set; }
}
public class Email
{
[Key]
public int Id { get; set; }
public string Type { get; set; }
[DisplayName("E-mail")]
public string Value { get; set; }
}
public class ProfileUpdate
{
[Key]
public int Id { get; set; }
public DateTime UpdateDateTime { get; set; }
}
public class Address
{
[Key]
public int Id { get; set; }
public string Type { get; set; }
public Street Street { get; set; }
[DisplayName("Почтовый индекс")]
public int PostalCode { get; set; }
[DisplayName("Город")]
public string Town { get; set; }
}
Пытаюсь создать контроллер MVC5 с представлениями, использующими EF для работы с этой моделью, но пишет ошибку, что Adresses: EntityType 'Adresses' has no key defined. Такое же пишет и для Email, Phone, Emails, Phones, EntitySet Adresses. Что мне изменить?
dbContext
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
Попробуйте вот так:
public class Customer
{
[Key]
public int Id { get; set; }
[DisplayName("Имя")]
public string Name { get; set; }
public IList<Address> Addresses { get; set; }
public IList<Phone> Phones { get; set; }
public IList<Email> Emails { get; set; }
public IList<ProfileUpdate> ProfileUpdates { get; set; }
[DisplayName("Заметка")]
public string Notes { get; set; }
public bool Active { get; set; } // активен ли аккаунт
}
Ключом должно быть что-то уникальное для всех записей такого типа в таблице. type
например - не подходящее для этого поле. Заведите для всех по аналогии с Customer
:
[Key]
public int Id { get; set; }
В итоге так:
public class Customer
{
[Key]
public int Id { get; set; }
[DisplayName("Имя")]
public string Name { get; set; }
public virtual IList<Address> Addresses { get; set; }
public virtual IList<Phone> Phones { get; set; }
public virtual IList<Email> Emails { get; set; }
public virtual IList<ProfileUpdate> ProfileUpdates { get; set; }
[DisplayName("Заметка")]
public string Notes { get; set; }
public bool Active { get; set; } // активен ли аккаунт
}
public class Street
{
[Key]
public int Id { get; set; }
[DisplayName("Адрес 1")]
public string Street1 { get; set; }
[DisplayName("Адрес 2")]
public string Street2 { get; set; }
}
public class Phone
{
[Key]
public int Id { get; set; }
public string Type { get; set; }
[DisplayName("Телефон")]
public long Value { get; set; }
}
public class Email
{
[Key]
public int Id { get; set; }
public string Type { get; set; }
[DisplayName("E-mail")]
public string Value { get; set; }
}
public class ProfileUpdate
{
[Key]
public int Id { get; set; }
public DateTime UpdateDateTime { get; set; }
}
public class Address
{
[Key]
public int Id { get; set; }
public string Type { get; set; }
public Street Street { get; set; }
[DisplayName("Почтовый индекс")]
public int PostalCode { get; set; }
[DisplayName("Город")]
public string Town { get; set; }
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте! Вопрос такой - в своём приложении использую, например, класс подразделения (Department), у которого есть вложенная коллекция сотрудников...
Переношу проект с# window в monodevelopНо выходит ошибка при компиляции ошибка создания целевого объекта LinkEmbeddableAssemblies:
У меня есть функция, которая может работать, даже если получила некорректные данныеНо я хочу предупредить пользователя/программиста, что...