2015-04-12 7 views
0

Я после этого урока http://www.asp.net/web-api/overview/data/using-web-api-with-entity-framework/part-4Невозможно использовать .INCLUDE

using System; 
using System.Collections.Generic; 
using System.Data; 
using System.Data.Entity; 
using System.Data.Entity.Infrastructure; 
using System.Linq; 
using System.Net; 
using System.Net.Http; 
using System.Threading.Tasks; 
using System.Web.Http; 
using System.Web.Http.Description; 
using BookService.Models; 

namespace BookService.Controllers 
{ 
    public class BooksController : ApiController 
    { 
     private BookServiceContext db = new BookServiceContext(); 

     // GET: api/Books 
     public IQueryable<Book> GetBooks() 
     { 
      return db.Books; 
        // new code: 
        .Include(b => b.Author); 
     } 

Я говорю, чтобы добавить .Include(b => b.Author); выполнить жадную загрузку. и использовать System.Data.Entity.Include Я сделал это, и я также добавил Entityframwork с NuGet, но я получаю

Неожиданный маркер не удается разрешить «Включить» код недостижим

Я все еще не хватает Etityframwork.dll, и если да, то как я его получу?

ответ

1

Как вы можете прочитать from related article of MSDN - Loading Related Entities

жадной загрузки является процесс, при котором запрос для одного типа объекта также загружает связанные объекты как часть запроса. Желательная загрузка - , достигаемая с помощью метода Include.

using (var context = new BloggingContext()) 
{ 
    // Load all blogs and related posts 
    var blogs1 = context.Blogs 
          .Include(b => b.Posts) 
          .ToList(); 

    // Load one blogs and its related posts 
    var blog1 = context.Blogs 
         .Where(b => b.Name == "ADO.NET Blog") 
         .Include(b => b.Posts) 
         .FirstOrDefault(); 

    // Load all blogs and related posts 
    // using a string to specify the relationship 
    var blogs2 = context.Blogs 
          .Include("Posts") 
          .ToList(); 

    // Load one blog and its related posts 
    // using a string to specify the relationship 
    var blog2 = context.Blogs 
         .Where(b => b.Name == "ADO.NET Blog") 
         .Include("Posts") 
         .FirstOrDefault(); 
} 

но ваш код опечатка; у вас есть ; слишком много:

return db.Books.Include(b => b.Author); 

проблема здесь:

return db.Books; <--- 
+0

Большое спасибо за дополнительную информацию было очень полезно. Также для ошибки кода –

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