1

dotConnect linq to sqlite を使用しています。私がやりたいことは、foreach ループで 2 つの変数を使用することです。このコードに従いましたが、機能していません。これは私のコードスニペットです。

    bool check_units(int id)
    {
        MainDataContext medic = new MainDataContext();
        bool check = false;
        var medic_query = from m in medic.Medicines
                          orderby m.Id
                          where m.Id == id
                          select m;

        var invo_query = from inv in medic.Invoices
                         orderby inv.Id
                         where inv.Id == id
                         select inv;

        var med_inv = medic_query.Zip(invo_query, (m, i) => new { Medicine = m, Invoice = i });

        foreach(var mi in med_inv)
        {
            if (mi.Medicine.UNIT > mi.Invoice.UNIT)
            {
                mi.Medicine.UNIT -= mi.Invoice.UNIT;
                if (mi.Medicine.UNIT < 10)
                {
                    MessageBox.Show(mi.Medicine.Name + " is short in Invertory!\nUnits Remaining: " + mi.Medicine.UNIT,
                        "Inventory Empty", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                chk = true;
            }
            else
            {
                MessageBox.Show("Not Enough Stock!\nUnits Remaining: " + mi.Medicine.UNIT,
                    "Inventory Short", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        medic.SubmitChanges();
        return chk;
    }

私が直面している問題は、コードでエラーが発生することです

クエリ演算子 'Zip' はサポートされていません。

構文エラーや警告はありません。Zip 演算子は linqtosql タイプのクエリでは使用できないと思います。

サポートを待っています!ありがとう :)

4

3 に答える 3