-1

私はこれに対する答えを探しましたが、まだ問題があり、何が間違っているのか疑問に思っていました....

MVC プロジェクトがあり、LINQ を使用してデータベース内の 2 つのテーブルからデータを取得しています。2 番目のテーブルに参加する必要がありますが、エラーが発生します

オブジェクト参照がオブジェクト インスタンスに設定されていません

問題は私のモデル、特に結合されているテーブルにあります。これが私のコードです:

public void DATA(string searchString)
        {
            newList = new List<ResultsList>();

            var res = from f in searchDB.CUSTOMERS

                      join cd in searchDB.CUSTOMER_DETAILS
                        on f.cust_id equals cd.cust_id into grouped
                        from gr in grouped.DefaultIfEmpty()

                      where f.ProductName.Equals(searchString)
                      select new { f, gr };


        foreach (var item in surname)
        {
            ResultsList rl = new ResultsList();

            rl.Forename = item.f.Forename;
            rl.Postcode = item.gr.postcode;
            rl.ProductName = item.f.ProductName;

            newList.Add(rl);
        }
    }
4

2 に答える 2

-5

申し訳ありませんが、「res」のはずですが、それは問題ではありませんでした。とにかくこれを解決しました。誰かが興味を持っているなら、これは私がやった方法です。

foreach の部分で、if ステートメントを追加して、結合されたテーブルの列が null かどうかを確認し、結合された列を除いて必要なものすべてを適用しました。それ以外の場合は、両方のテーブルから必要なものすべてを使用しました。

foreach (var item in res)
        {
            ResultsList rl = new ResultsList();

            if (item.gr != null)
            {
                rl.Forename = item.f.Forename;
                rl.Postcode = item.gr.postcode;
                rl.ProductName = item.f.ProductName;
            }
            else
            {
                rl.Forename = item.f.Forename;
                rl.ProductName = item.f.ProductName;

            }
于 2013-10-07T16:13:48.420 に答える