Получить список моделей сущностей в DbContext Entity Framework Core 2.1 - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь найти способ получить список всех моделей сущностей в моем DbContext. Например, если у меня есть две модели, названные Customer и Invoice, определенные в C #, которые с помощью кода сначала создали сущности EF и базу данных, как мне теперь запросить DbContext, чтобы получить список, в котором есть Customer и Invoice - то есть все сущности в этом контексте? Я хочу иметь возможность вызывать метод, который возвращает список всех объектов, а не данных, просто список объектов.

Мне кажется, это должно быть так просто, но либо это нелегко, либо я что-то упускаю - возможно, последнее. ;-).

Может ли кто-нибудь указать мне правильное направление? Спасибо!!

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Вы можете использовать свойство Model , чтобы получить связанный IModel , затем GetEntityTypes метод для перечисления всех IEntityType s. Свойство ClrType , равное IEntityType, предоставит вам связанный тип класса, например

DbContext db = ...;
var entityTypes = db.Model.GetEntityTypes().Select(t => t.ClrType).ToList();

IEntityType имеет много полезных свойств и (расширений) методов для получения информации о первичных / альтернативных ключах, внешних ключах, навигациях, свойствах и т. Д. В случае необходимости.

0 голосов
/ 14 января 2019

Документацию можно посмотреть по адресу: https://docs.microsoft.com/en-us/ef/core/querying/related-data

Например Если у вас есть блоги и сообщения в виде двух таблиц, то вы можете получить связанную таблицу, как показано ниже. Это зависит от того, как отношения присутствуют в двух таблицах.

Вы также можете добавить предложение where, чтобы получить только выбранные записи.

using (var context = new BloggingContext())
{
    var blogs = context.Blogs
        .Include(blog => blog.Posts)
        .ToList();
}
...