2016-08-22 212 views
0

在我的ASP.NET應用程序的核心,我得到以下查詢以下錯誤:LINQ查詢錯誤加入

錯誤CS0119:「產品」是一種類型,它是無效的給定的上下文

注意:上面的錯誤是在下面的查詢

LINQ查詢的線join prod in products on.....

using System.Linq; 
    var innerJoinQuery = 
     from category in categories 
     join prod in products on category.ID equals prod.ID 
     select new { ProductName = prod.Name, Category = category.Name }; 

類別

public class category 
    { 
     [Key] 
     public int ID { get; set; } 
     public string Name { get; set; } 
     public string categoryNumber { get; set; } 
    } 

產品

public class product 
    { 
     [Key] 
     public int ID { get; set; } 
     public string Name { get; set; } 
     public string productNumber { get; set; } 
    } 

注意:這是一個code first應用程序,具有在其他上述模型類。

+0

由於錯誤提示產品,您可能需要向我們顯示該聲明,以及它與「類別」聲明有何區別。 – Meligy

+0

@Meligy謝謝你的幫助。我在帖子中添加了產品和類別類,並在最後添加了NOTE。 – nam

+0

這不是關於'產品',而是關於'產品',查詢說'在類別'和'產品'中。每個這些應該是一個IQueryable。像上下文中定義的'DbSet <>'(或許就像'dbContext.Products')或另一個LINQ查詢。 – Meligy

回答

2
var db = new ProjNameDbContext(); 
var innerJoinQuery = 
    from category in db.categories 
    join prod in db.products on category.ID equals prod.CategoryID 
    select new { ProductName = prod.Name, Category = category.Name }; 
+1

您的解決方案有效 - 謝謝。我正在使用ASP.NET Core,所以我的控制器具有類級別變量'_context',它在構造函數中設置爲ProjNameDbContext類型。但是從你的解決方案中我得到了這個想法(我用_context替換了db)。 – nam