2016-08-22 9 views
0

に参加し、私は次のクエリで次のエラーを取得しています:LINQクエリのエラーは私のASP.NETコアアプリで

エラー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; } 
    } 

NOTE:これは他の人の間で上記のモデルクラスを持っているcode firstアプリケーションです。

+0

エラーは 'products'と言うので、おそらく、その宣言と' categories'宣言との違いを示す必要があります。 – Meligy

+0

@Meligyご協力いただきありがとうございます。最後に、ノートと一緒に私のポストに製品とカテゴリのクラスを追加しました。 – nam

+0

これは「製品」についてのものではなく、「製品」に関するもので、クエリでは「カテゴリ内」と「製品内」です。これらはそれぞれIQueryableでなければなりません。 ( 'dbContext.Products'のような)コンテキスト内で定義された' DbSet <> 'のようなもの、または別の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を使用しているので、私のコントローラにはコンストラクタでProjNameDbContext型に設定されているクラスレベル変数 '_context'があります。しかし、あなたのソリューションから、私はアイデアを得ました(私はdbを_contextに置き換えました)。 – nam

関連する問題