2013-03-30 2 views
0

Я новичок в Framework ввода. Я работаю, хотя книга Юлии Лерман, и я застрял в методе Query Builder. Я получаю следующую ошибку компиляции:Entry Framework 4..5: Query Builder

Error 1 'System.Data.Entity.DbSet<Chapter2ConsoleApp.Contact>' does not 
contain a definition for 'Where' and the best extension method overload 
'System.Linq.Queryable.Where<TSource>(System.Linq.IQueryable<TSource>, 
System.Linq.Expressions.Expression<System.Func<TSource,bool>>)' has some invalid arguments 
C:\EF\ProgrammingEntityFramework\Chapter2ConsoleApp\Program.cs 59 32 
Chapter2ConsoleApp 

Существует код.

using (SampleEntities context = new SampleEntities()) 
      { 
       var contacts = context.Contacts.Where("it.FirstName = 'Robert'").OrderBy("it.LastName"); 
           foreach (Contact contact in contacts) 
       { 
        Console.WriteLine("{0} {1}", 
           contact.FirstName.Trim(), 
           contact.LastName); 
       } 
      } 
      Console.Write("Press Enter..."); 
      Console.ReadLine(); 
     } 

A Linq to entity with lambda works OK. Когда я смотрю на плохой код через IntelliSense, я вижу, что есть метод Where. Наконец, я попробовал листинг [(IObjectContextAdapter)] в контексте, но затем я не смог получить метод Contact.

Может кто-нибудь мне помочь?

ответ

0

Используйте следующий код ниже (убедитесь, что вы импортировать System.Data.Entity.Infrastructure пространства имен)

var contacts = ((IObjectContextAdapter)context).ObjectContext.CreateObjectSet<Contact>() 
       .Where("it.FirstName = 'Robert'") 
       .OrderBy("it.LastName"); 

Спасибо, Kinvi

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