2

アイテムの数を取得する方法がありますが、ばかげた例外で行き詰まりました:

 internal static bool IsCompanyInList(int companyId, int favoritecompanyId)
        {
            var result = _context.FavouriteCompanies.Count(c => c.CompanyId == companyId && c.FavouriteCompanyId == favoritecompanyId); // getting exception here
            if ( result >0)
                return true;
            return false;
        }

また、もう 1 つの手がかりとして、私のテーブルは空です。列が全くありません。この状況を処理する方法。Where句も試しました。下記参照:

 var result = _context.FavouriteCompanies.Where(criteria_here);
4

4 に答える 4

1

エラーは、メンバーにアクセスしようとした場所で発生する可能性があります。

var result = _context.FavouriteCompanies.Count(c => c.CompanyId == companyId && c.FavouriteCompanyId == favoritecompanyId);

_contextはnullですか?_context.FavoriteCompaniesはnullですか?FavoriteCompaniesには、CompanyIdまたはFavouriteCompanyIdがnullであるレコードが含まれていますか?

これはLinq2Sqlであるため、メンバー自体にアクセスする前に、count句内でc.FavouriteCompanyId.Isnull()を要求できます。

于 2012-04-30T10:33:13.387 に答える
1

私にとっては、文字列 (または null 可能な列)の値の 1 つが null でした。

        var result = _context.FavouriteCompanies.Count(c => c.CompanyId != null && c.CompanyId == companyId && c.FavouriteCompanyId != null && c.FavouriteCompanyId == favoritecompanyId);
于 2014-11-19T07:46:55.090 に答える
1

FavouriteCompanies が null です。あなたはそのようなことをすることができます:

internal static bool IsCompanyInList(int companyId, int favoritecompanyId)
            {
                var result = _context.FavouriteCompanies;
                if (result!=null)
                {
                    return result.Any(c => c.CompanyId == companyId && c.FavouriteCompanyId == favoritecompanyId);
                } 

                return false;
            }

そのソリューションif (result>0)では冗長です。

于 2012-04-30T10:27:23.853 に答える
1

スタックを含めることができれば助かりますが、FavouriteCompanies コレクションには null が含まれていると思います (または、_context 変数が null である可能性があります。多くのメソッドを "." と一緒にチェーンすると、列車事故が発生します)。何がnullかわかりにくい場所)。null を削除することで、これを防御的に回避できます。

var result = _context.FavouriteCompanies.Where( c => c != null ).Count(...)

正直なところ、null が FavourieCompanies に挿入された場所を見つけて、そこで停止する方がはるかに良いでしょう。

于 2012-04-30T10:27:28.517 に答える