EF 4.1 Code First - самостоятельные ссылки внешних ключей и внешнего ключа на другие таблицы - PullRequest
2 голосов
/ 24 июня 2011

У меня есть класс POCO следующим образом

public class Category 
{ 
   public int ID {get; set; }
   public string desc {get; set; }
   public int parentID {et; set; }
}

public class Issue 
{
   public int ID {get; set;}
   ....
   public int categoryID {get; set; }
   public int subCategoryID {get; set; }

   public virtual Category category{get; set; }
   public virtual Category subCategory {get; set;}
}

Я продолжаю получать ошибки с внешними ключами с вышеуказанными классами.По сути, моя таблица категорий содержит категории с подкатегориями.И проблема может иметь категорию и подкатегорию.Кто-нибудь поможет мне правильно определить эти отношения?Я пытался использовать аннотации внешнего ключа, но я получаю сообщение об ошибке, в котором говорится, что база данных создана, но создание объекта не выполнено из-за отношения внешнего ключа, указанного в сообщении Issue.Есть идеи почему?И что я могу сделать, чтобы решить эту проблему?

Ответы [ 2 ]

4 голосов
/ 24 июня 2011

Пожалуйста, ознакомьтесь с этой статьей - Как настроить самоссылающуюся сущность в Code First

Полагаю, это поможет вам правильно установить отношения. Как вы увидите в статье, вам нужно определить некоторые дополнительные текущие настройки в методе OnModelCreating в вашем классе DbContext.

2 голосов
/ 22 июля 2011

Вы можете сделать это с одним классом.

Для кода EF4.1 сначала у меня есть следующий пример:

/// <summary>
/// represents a single configuration item within CM
/// </summary>
public class CI
{
    [Key]
    public int ID { get; set; }

    ....

    [ForeignKey("Parent")]
    public int? Parent_ID { get; set; }




    [InverseProperty("Parent")]
    [ForeignKey("Parent_ID")]
    public virtual ICollection<CI> Contents { get; set; }


    [InverseProperty("Contents")]
    public virtual CI Parent { get; set; }
...