Я пытаюсь создать свою первую миграцию с помощью Entity Framework 7 с кодом первой разработкой, и я получаю следующее сообщение об ошибке:Entity Framework 7 Проблемы создания миграции, поскольку навигация свойство с таким же именем существует
The property 'Email' cannot be added to the entity type 'UserDTO' because a navigation property with the same name already exists on entity type 'UserDTO'.
Моя среда: 1) Visual Studio 2015 2) Entity Framework версия 7.0.0-rc1-конечные аннотаций 3) код первой разработки 4) Использование свободно API, а не данных
Я не могу понять, что первопричиной проблемы является только I'v e получил несколько идей. Предполагается, что мой класс RoleDTO использует свое свойство адреса электронной почты как свой ПК, а также имеет набор объектов RoleDTO в качестве свойства.
Ниже приведен единственный класс, который унаследовал от DbContext прямо сейчас. Я прокомментировал другую сущность, которую я должен попытаться и уменьшить проблему.
class StorageContext : DbContext
{
public DbSet<UserDTO> Users { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("MySQLServerConnectionString")
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<UserDTO>().HasKey(entity => entity.Email);
//modelBuilder.Entity<UserDTO>().HasMany(entity => entity.Roles);
}
}
И вот класс UserDTO. Может ли кто-нибудь увидеть, что вызывает ошибку, когда я пытаюсь выполнить миграцию?
internal class UserDTO
{
public EmailAddress Email { get; private set; }
public string FullName { get; private set; }
public string UserName { get; private set; }
public virtual ICollection<string> Roles { get; private set; }
// more below here like a constructor and some basic methods
Если переключить ключ для UserDTO в простой строки вместо объекта complext EmailAddress, похоже, он получает мимо этой ошибки, и я получаю другой, столь же интересный:
The property 'Roles' on entity type 'Microsoft.SRE.NavisionOnline.ConfigurationAutomation.DAL.SQLEntities.UserDTO' has not been added to the model or ignored.
Я была такая же проблема с утверждением HasIndex –