2012-05-15 57 views
0

「在文檔的末尾附加內容」,我有以下錯誤,當我嘗試查詢我的MVC 4的WebAPI服務的WebAPI使用LINQ錯誤

Extra content at the end of the document 

Below is a rendering of the page up to the first error. 

55Author Namehttp://images.myserver.com/authorspictures/nophoto.jpg 

我看着通過的LINQ產生To Sql的Author類並且發現,就在圖像URL後Author對象的一個​​屬性是這個:

[Association(Name = "Author_Quote", Storage = "_Quotes", ThisKey = "Id", OtherKey = "AuthorId")] 
    public EntitySet<Quote> Quotes { get; set; } 

我undertanding是產生此屬性造成上述錯誤的XML時存在一些問題。但是我不知道如何防止並使其正常工作。我在webApi上找到的大多數例子都是使用POCO列表,所以他們無法幫助我解決這個問題。

任何建議?

下面是我的代碼

public class AuthorController : ApiController 
{ 
    IAuthorRepository repository; 

    public AuthorController(IAuthorRepository repository) 
    { 
     this.repository = repository; 
    } 

    [ResultLimit(20)] 
    public IQueryable<Author> GetAuthors(){ 
     return repository.GetAuthors(); 
    } 
} 



public class DBAuthorRepository : IAuthorRepository 
{ 
    public IQueryable<Author> GetAuthors() 
    { 
     using (var context = new QuotesDataContext()) 
     { 
      return context.Authors.ToList().AsQueryable(); 
     } 
    } 
} 

回答

3

我發現它是由加載遞延造成的。所以我添加了以下內容,現在它可以工作。

public class DBAuthorRepository : IAuthorRepository 
{ 
    public IQueryable<Author> GetAuthors() 
    { 
     using (var context = new QuotesDataContext()) 
     { 
      context.DeferredLoadingEnabled = false; // Added this line 
      return context.Authors.ToList().AsQueryable(); 
     } 
    } 
} 
0

我得到在mvc4的WebAPI上面的錯誤,形成@alexandrekow的答案,我找到了解決辦法:

entity = new BrewedlifeEntities(); 
entity.ContextOptions.ProxyCreationEnabled = false; // Added this line