Привет, я искал около 40 минут, пытаясь понять, как это сделать, и мне не повезло. Я создаю приложение для форума с ASP.NET. MVC5 и EF6. Мое приложение содержит модель комментария; здесь я столкнулся с проблемами. Я хочу, чтобы потоки могли иметь комментарии (это было легко), и я также хочу, чтобы комментарии имели комментарии (это моя проблема).Таблица с внешним ключом того же типа лица
Вот как определяется моя модель:
namespace Forum.Models
{
public class Comment
{
[Key]
public int Id {get; set;}
[DisplayFormat(DataFormatString = "{0:d/M/yyyy HH:mm:ss}",
ApplyFormatInEditMode = true)]
public DateTime TimeStamp { get; set; }
public string Content { get; set; }
public String UserId { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
[ForeignKey("ParentComment")]
public int ParentCommentId { get; set; }
public virtual Comment ParentComment { get; set; }
public int ThreadId { get; set; }
public virtual Thread Thread {get; set;}
}
}
Это ошибка, я получаю, когда я пытаюсь обновить эту таблицу:
Не удается вставить явное значение для столбца идентификаторов в таблице «Комментарии ', когда для параметра IDENTITY_INSERT установлено значение OFF.
Любая помощь была бы принята с благодарностью.
Что вы имеете в виду "*, когда я пытаюсь обновить эту таблицу *"? «Обновить» = обновить запись в этой таблице (или даже вставить запись)? Или обновить схему таблицы (миграция?)? В качестве побочного примечания: я думаю, что 'ParentCommentId' должен быть нулевым (' int? '), Потому что у вас наверняка будут комментарии без родителя, например, самый первый комментарий к потоку. – Slauma
@Slauma Извините за неопределенность. В частности, я говорил о создании нового комментария и добавлении его в базу данных. Итак, вставка новой строки. И да, я согласен с тобой по поводу инт. – rocktheartsm4l