2015-12-26 2 views
0

У меня возникли некоторые проблемы с отображением объекта с помощью EF Code.Объекты карты с EF

У меня есть три класса:

-Employee -AssesmentOnEmployee -Assesment

Сотрудник имеет отношение один-ко-многим с AssesmentOnEmployee AssesmentOnEmployee имеет отношение один к одному с Assement.

Код:

public class AssesmentOnEmployee 
{ 
    public int AssesmentOnEmployeeId { get; set; } 

    public DateTime CreatedDate { get; set; } 

    public virtual Assesment Assesments { get; set; } 

    public virtual int AssesmentUserId { get; set; } 

    public virtual Employee AssesmentUser { get; set; } 
} 

public class Employee 
{ 
    public int EmployeeId { get; set; } 

    public string Name { get; set; } 

    public virtual ICollection<AssesmentOnEmployee> AssesmentOnEmployees { get; set; } 
} 

AppContext.cs:

modelBuilder.Entity<AssesmentOnEmployee>() 
      .HasRequired(t => t.Assesments) 
      .WithRequiredDependent(t => t.AssesmentOnEmployee); 


modelBuilder.Entity<Employee>() 
      .HasMany(t => t.AssesmentOnEmployees) 
      .WithRequired(t => t.AssesmentUser).HasForeignKey(x => x.AssesmentUserId); 

Когда я пытаюсь добавить-миграции и обновления базы данных я получаю эту ошибку:

The object 'PK_dbo.AssesmentOnEmployee' is dependent on column 'AssesmentOnEmployeeId'. ALTER TABLE DROP COLUMN AssesmentOnEmployeeId failed because one or more objects access this column.

ли кто-нибудь может решить мою проблему?

ответ

0

Этого может быть много. Кажется, что таблица AssesmentOnEmployee уже существует, и вы пытаетесь ее изменить, но она нарушает ограничение PK.

Самый простой способ решить эту проблему: удалить существующую таблицу и произвести миграцию снова, используя add-migration YourLastMigrationName -force.

Если это не решит вашу проблему, оставьте комментарий ниже, а затем мы можем попробовать другой подход.

+0

Это не работает, я не могу понять, где я ошибся. я все еще получаю это сообщение после запуска моего надстройки миграции MyLastMigrationName -force Update-Database Объекта «PK_dbo.AssesmentOnEmployee» зависит от столбца «AssesmentOnEmployeeId». ALTER TABLE DROP COLUMN AssesmentOnEmployeeId не удалось, так как один или несколько объектов обращаются к этому столбцу. – ShaqCode

+0

показать код, сгенерированный в файле сценария миграции –

Смежные вопросы