0

私は病院のカフェテリアで POS を行っており、YouTube で C# で POS を実行する方法のビデオを見ていますが、彼がObjectQuery<T>クラスを使用するこの部分に到達し、それが与えるオブジェクトのインスタンスを宣言すると私にこのエラー:

エラー 2 引数 2: 'Cafeteria_POS_EF4.BVH_POS_DB_MODEL_EF43' から 'System.Data.Objects.ObjectContext' に変換できません c:\users\tony's\documents\visual studio 2013\projects\cafeteria_pos_ef4\cafeteria_pos_ef4\cashregister.cs 46 119 Cafeteria_POS_EF4

そしてこれ:

エラー 1 'System.Data.Objects.ObjectQuery.ObjectQuery(string, System.Data.Objects.ObjectContext)' に一致する最適なオーバーロードされたメソッドには、いくつかの無効な引数があります c:\users\tony's\documents\visual studio 2013\projects\cafeteria_pos_ef4 \cafeteria_pos_ef4\cashregister.cs 46 49 Cafeteria_POS_EF4

インターネットで解決策などを検索してみましたが、古いチュートリアルしか見つからず、コンストラクター引数の送信方法について Microsoft が何を言っているのか理解できません....NET Framework 4 と Visual Studio 2013 を使用しています。

PS -データベース内の項目から動的に入力するループをObjectQuery実行したいので使用したいforeachTabControl

 ObjectQuery<pos_item> filteredProduct = new ObjectQuery<pos_item>("SELECT VALUE P FROM pos_item AS P WHERE P.pos_item_group = " + i.ToString(), cse);

クラス全体を見たい場合は、以下に投稿してください。時間と労力を前もって感謝します

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Objects;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Cafeteria_POS_EF4
{
    public partial class CashRegister : Form
    {

    private BindingList<pos_item> products = new BindingList<pos_item>();

    private BVH_POS_DB_MODEL_EF43 cse = new BVH_POS_DB_MODEL_EF43();

    public CashRegister()
    {
        InitializeComponent();
        lboxBasket.DataSource = products;
        lboxBasket.DisplayMember = "description";
        //pos_item p = new pos_item() { };
        CreateTabbedPanel();

        FillTabbedPanel();
    }




    private void CreateTabbedPanel()
    {

        foreach(pos_item_group ig in cse.pos_item_group)
        {
            tabControl.TabPages.Add(ig.item_group_id.ToString(), ig.item_group_name);
        }

    }

    private void FillTabbedPanel()
    {

        int i = 1;

        foreach(TabPage tp in tabControl.TabPages)
        {
            ObjectQuery<pos_item> filteredProduct = new ObjectQuery<pos_item>("SELECT VALUE P FROM pos_item AS P WHERE P.pos_item_group = " + i.ToString(), cse);


            FlowLayoutPanel flp = new FlowLayoutPanel();

            flp.Dock = DockStyle.Fill;

            foreach (pos_item item in filteredProduct)
            {
                Button b = new Button();
                b.Text = item.description;
                tp.Controls.Add(b);
            }

        tp.Controls.Add(flp);
        i++;

        }

    }

}

}

4

1 に答える 1

0

私の問題を解決したフォーラムでこの回答を見つけました。

XXX に最適なオーバーロードされたメソッド マッチには無効な引数があります

ループ内で例外が発生しているため、コードは実行されませんforeach

引数の型 'POS_DB_MODEL.pos_item_group' と 'Edm.Int32' は、この操作と互換性がありません。WHERE 述語の近く、1 行目、58 列目。

于 2014-06-27T21:52:04.233 に答える