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?
Popular Answer You can also use Count() : if(db. Projects. Count() == 0) { // The table is empty. }
If a table does't have a primary key then there are few scenarios that need to be analyzed in order to make the EF work properly. The rule is: EF will work with tables/classes with primary key.
Entity Framework supports three ways to load related data - eager loading, lazy loading and explicit loading.
Entity Framework automatically creates database when it doesn't exist.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With