简体   繁体   中英

Check if a table is empty with Entity Framework using CodeFirst

I'm developing an application using MVVM where i want to use Entity Framwork 5.0. It's my first time using EF, so hope i can explain my problem so you all understand. My application has a embedded database and im using Code-First approach.

Here is an example to illustrate the problem: Here i set my Project model which i set as a table in the embedded database, if i understand correct.

class CreateDbContext : DbContext
{
    public CreateDbContext() : base() { }

    public CreateDbContext(String nameOrConnectionString) : base(nameOrConnectionString) { }

    public DbSet<Project> Projects { set; get; }
}

Now in my ProjectViewModel i want to check if the Project table is empty in the database, before doing anything.

using (var db = new CreateDbContext())
{
    if(db.Projects <-- checked if this is Tablet is empty ??)
}

How should i do that, or is it even possible?

This should work:

using (var db = new CreateDbContext())
{
    if(!db.Projects.Any())
    {
        // The table is empty
    }
}

You can also use Count() :

if(db.Projects.Count() == 0) 
{
    // The table is empty.
}

To see the differences between Any() and Count() see this question .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM