Первая ошибка кода EF «Указанный индекс уже существует. [IX_Id]» для дерева объектов - PullRequest
4 голосов
/ 31 марта 2012

Использование кода EF сначала 4.3 Я пытаюсь смоделировать дерево объектов с обязательными обязательными отношениями и обязательными необязательными отношениями.

Вот простое представление этих классов

public class Top
{
    public int Id { get; set; }
    public virtual Middle Middle { get; set; }
}

public class Middle
{
    public int Id { get; set; }
    public virtual Child Child { get; set; }
}

public class Child
{
    public int Id { get; set; }
}

Вот код OnModelCreating

modelBuilder.Entity<Top>().HasRequired(t => t.Middle).WithRequiredPrincipal().WillCascadeOnDelete();
modelBuilder.Entity<Middle>().HasRequired(t => t.Child).WithOptional().WillCascadeOnDelete();

Это выдает ошибку "Указанный индекс уже существует. [IX_Id]" на SQLCE

После проверки БДСхема, обе строки конфигурации API связующего элемента модели свободно создают индекс IX_Id для таблицы Middles.

Кто-нибудь знает, как обойти эту проблему?

Есть ли способ установить имя индекса?

Спасибо!Pascal

1 Ответ

0 голосов
/ 18 февраля 2014

используйте этот код;

public class Top
{
    public int Id { get; set; }

    public int MiddleId { get; set; }

    [ForeignKey("MiddleId")]
    public virtual Middle Middle { get; set; }
}

public class Middle
{
    public int Id { get; set; }

    public int ChildId { get; set; }

    [ForeignKey("ChildId")]
    public virtual Child Child { get; set; }
}

public class Child
{
    public int Id { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...