Нужно ли определять DbSet для всех прав? - PullRequest
0 голосов
/ 22 декабря 2018

Я изучаю EF и неясно, когда создавать DbSet для сущности.В стандартном примере блога, который есть в документах Microsoft, они определяют наборы DbSets для блога и поста.Зачем нужно создавать DbSet для сообщений?Разве сообщения не доступны через блоги, и поэтому я могу получать сообщения, используя запрос LINQ?

public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }
    public int Rating { get; set; }
    public List<Post> Posts { get; set; }
}

public class Post
{
    public int PostId { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }
    public int BlogId { get; set; }
    public Blog Blog { get; set; }
}

1 Ответ

0 голосов
/ 22 декабря 2018

Зачем нужно создавать DbSet для сообщений?

Это не обязательно.Правила в EF Core:

По соглашению, типы, предоставляемые в свойствах DbSet в вашем контексте, включаются в вашу модель.Кроме того, типы, которые упоминаются в методе OnModelCreating, также включены.Наконец, любые типы, которые обнаруживаются путем рекурсивного исследования навигационных свойств обнаруженных типов, также включаются в модель.

Включая и исключая типы

Но обычноПрактика заключается в том, чтобы объявить DbSet для каждой сущности, потому что вы можете написать запрос, который начинается с сообщений, или получить одну запись без связанного с ней блога.

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