@mr_blond97

Как получить количество строк в таблице?

Модель базы из примера имеет вид:

using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;

namespace ConsoleApp.SQLite
{
    public class BloggingContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Post> Posts { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlite("Data Source=blogging.db");
        }
    }

    public class Blog
    {
        public int BlogId { get; set; }
        public string Url { 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; }
    }
}


Необходимо инициализировать массив Blog[] blogs и заполнить его значениями из db.Blogs. Но для того что бы инициализировать массив нужно узнать какой длины он должен быть или сколько строк содержится в db.Blogs, как это сделать?
  • Вопрос задан
  • 2662 просмотра
Решения вопроса 1
dmitry_pavlov
@dmitry_pavlov
World-class .NET freelance contractor (remotely)
Если данные в DbSet уже есть, то можно получить массив так:
Blog[] blogs = db.Blogs.ToArray();

Если нужно явно посчитать записи, можно выполнить скаляр так:
var command = new SQLiteCommand(connection);
command.CommandText = "SELECT COUNT(Id) FROM Blogs";
command.CommandType = CommandType.Text;
int сount = (int) command.ExecuteScalar();
Blog[] blogs = new Blogs[count];
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы