Подскажите, как правильно сформулировать структуру базы данных для ядра EF - PullRequest
0 голосов
/ 23 февраля 2019

Я использую ядро ​​EF, и мне нужен совет, как правильно создать таблицу.Есть статья, это можно прокомментировать.Также есть возможность комментировать сами комментарии.Как описать сущности для базы данных?

Итак:

public class Article 
{
   public int Id {get; set;}
   public string Content {get; set;}

   public List<CommentForArticle>Comments{get;set;}       
}
public class CommentForArticle
{
   public int Id {get; set;}
   public string Content {get; set;}
   public List<CommentForComment> Comments {get; set;}

   public int ArticleId {get; set;}
   public Article Artcile {get; set;}
}
public class CommentForComment
{
   public int Id {get; set;}
   public string Content {get; set;}      

   public int CommentId {get; set;}
   public CommentForArticle CommentForArticle{get; set;}
}

Или так:

public class Article
{
   public int Id {get; set;}
   public string Content {get; set;}

   public List<Comment>Comments{get; set;}       
}
public class Comment
{
   public int Id {get; set;}
   public string Content {get; set;}

   public CommentType Type {get; set;}

   public List<Comment> Comments {get; set;}

   public int? ArticleId {get; set;}
   public Article? Artcile {get; set;}
   public int? CommentId {get; set;}
   public Comment? Comment{get; set;}
}
public enum CommentType 
{
   CommentForArticle,
   CommentForComment
} 

1 Ответ

0 голосов
/ 23 февраля 2019

Вопрос основан на мнении и зависит от ваших требований.Я бы реализовал вашу логику только с двумя классами (бритвой Оккама) и, возможно, даже без дополнительного перечисления - вы можете просто добавить метод с проверкой того, что один и только FK имеет значение - я думаю, это самый простой подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...