Использование кода EF Сначала у меня есть следующее, например:
public class Blog
{
public int BlogID { get; set; }
public string Content { get; set; }
public virtual User User { get; set; }
public virtual ICollection<BlogMeta> BlogMeta { get; set; }
}
public class BlogMeta
{
public int BlogMetaID { get; set; }
public string Content { get; set; }
public virtual User User { get; set; }
public virtual Blog Blog { get; set; }
}
Это успешно генерирует таблицы Blog и BlogMeta и создает отношение внешнего ключа с таблицей User.После прочтения this я изменил это на следующее:
public class Blog
{
public int BlogID { get; set; }
public string Content { get; set; }
public int UserID { get; set; }
public virtual User User { get; set; }
public virtual ICollection<BlogMeta> BlogMeta { get; set; }
}
public class BlogMeta
{
public int BlogMetaID { get; set; }
public string Content { get; set; }
public int UserID { get; set; }
public virtual User User { get; set; }
public int BlogID { get; set; }
public virtual Blog Blog { get; set; }
}
и теперь это не работает.Он генерирует таблицы и затем выдает следующую ошибку при попытке создать отношения:
Введение ограничения FOREIGN KEY 'BlogMeta_User' в таблицу 'BlogMeta' может вызвать циклы или несколько путей каскада.1013 *
Так в чем же преимущество введения public int UserID
и почему он не работает при этом?
РЕДАКТИРОВАТЬ: Хорошо, так что я столкнулся с этот ответ , который очерчивает разницу между независимыми ассоциациями и ассоциациями внешних ключей ... который, как оказалось, является тем, о чем я говорил.Таким образом, возникает вопрос: почему при использовании ассоциаций внешних ключей возникает вышеуказанная ошибка?