1

この関数では:

public IList<foods> GetFoods()
{
    IList<foods> myFoods = null;

    using (var db = new FoodsContext(ConnectionString))
    {
        var query = from e in db.MyFoods
                    select e;

        myFoods = query.ToList();

        return myFoods;
    }
}

次のエラーが表示されます。

myFoods = query.ToList();

エラーは言う:

InvalidCastException が処理されませんでした

しかし、特定の列の値を取得できます。つまり、次のように記述します。

var query = from e in db.MyFoods
    select e.calorie;

カロリー列を正しく取得します。では、どこに問題があるのでしょうか。ありがとう。

4

2 に答える 2

0

あなたのコードに基づいて、linq クエリの結果を直接 food クラス オブジェクト コレクションにキャストすることはできないと思います。以下のコードを試してください

public IList<foods> GetFoods()
    {
        IList<foods> myFoods = null;

        using (var db = new FoodsContext(ConnectionString))
        {
            var query = from e in db.MyFoods
                        select new foods
                        {
                            calorie = e.calorie,

                            // Map other properties of foods object here

                        };

            myFoods = query.ToList();

            return myFoods;
        }
    }

詳細でエラーが発生した場合はお知らせください

于 2012-11-12T01:57:22.313 に答える
0

あなたはLinq2SQLを使用していると思います。db.MyFoodsつまり、テーブル名はMyFood. したがって、それを試みるquery.ToList();と が返され、 からにList<MyFood>変換しようとするとが につながります。List<MyFood>IList<foods>InvalidCastException

これを試して、

public IList<foods> GetFoods()
{
    using (var db = new FoodsContext(ConnectionString))
    {
        return db.Employees.Select(e => new foods 
                                         { 
                                           calorie = e.calorie,

                                           // Map other properties of foods object here
                                         }).ToList<foods>();
    }
}
于 2012-11-12T02:59:33.053 に答える