0

db_Entities モデルからデータをフィルタリングするのに苦労しています。コンボ ボックス 1 にバインドされたテーブルがあり、コンボ ボックス 1 コントロール内の commitChanged イベントを使用してデータをフィルター処理しようとしています。私は2つのエラーが発生しています。1 は : 'System.Data.Entity.Core.Objects.ObjectQuery.ObjectQuery(string, System.Data.Entity.Core.Objects.ObjectContext)' に最も一致するオーバーロードされたメソッドには、いくつかの無効な引数があります。
2 つ目は、「SmallStore.db_Entities」から「System.Data.Entity.Core.Objects.ObjectContext」に変換できません。スペースを節約するためにディレクトリを省略しました。ここにコードがあります

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.Entity.Core.Objects;
    using System.Data.Entity.Core.Query;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;


    namespace SmallStore
    {
         public partial class ViewProducts : Form
         {                
           private db_Entities db = new db_Entities();

    public ViewProducts()
    {

        InitializeComponent();

        dataGridView1.DataSource = db.Products.ToList();

        dataGridView1.Columns["ProductType"].Visible = false;
        dataGridView1.Columns["TransactionItems"].Visible = false;
        dataGridView1.Columns["Product_Type"].Visible = false;

        comboBox1.DataSource = db.Product_Type.ToList();
        comboBox1.ValueMember = "Description";
        comboBox1.DisplayMember = "Product_Type";

    }

    private void changeCommit(object sender, EventArgs e)
    {
        /* filter products */
        ObjectQuery<Product> filteredProducts = new ObjectQuery<Product>("SELECT VALUE item FROM Products AS item WHERE item.ProductType = " + comboBox1.SelectedValue, db);

    }
}

}

4

1 に答える 1

0

これを試して:

var querystring = "SELECT VALUE item FROM Products AS item WHERE item.ProductType = " + comboBox1.SelectedValue;  

Debugger.Break();  //Ensure querystring is what you want here

 var products = db.Database.SqlQuery<Product>(querystring).ToList();
于 2016-12-07T00:05:39.623 に答える