2013-04-24 7 views
4

Я разрабатываю приложение с использованием MVVM, где я хочу использовать Entity Framwork 5.0. Это мой первый раз, когда я использую EF, поэтому надеюсь, что смогу объяснить свою проблему, чтобы вы все поняли. Мое приложение имеет встроенную базу данных и im, используя подход Code-First.Проверьте, нет ли таблицы в Entity Framework с использованием CodeFirst

Вот пример, который иллюстрирует проблему: Здесь я устанавливаю мою модель проекта, которую я установил как таблицу во встроенной базе данных, если я понимаю правильно.

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

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

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

Теперь в моей ProjectViewModel я хочу проверить, нет ли в базе данных проекта пустой базы данных, прежде чем что-либо делать.

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

Как я могу это сделать, или это возможно?

ответ

21

Это должно работать:

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

Hey greg84. Это было очень просто и работает как шарм. Спасибо alot m8 – mskydt86

+0

Вы должны отметить это как ответ, так как это было то, о чем вы просили – Charles380

+0

Уже сделали это, но пришлось ждать 8 минут, прежде чем я смог отметить ответ. – mskydt86

0

Вы также можете использовать Count():

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

Чтобы увидеть различия между Any() и Count() см this question.

Смежные вопросы