3

私は MVC と EF を初めて使用し、特に EF key="" を使用して、EF クエリを機能させるのにかなりの時間を費やしています。テスト コードを追加した後、ここで返されるエラーは「現在のコンテキストに名前 idAddress が存在しません」です。Address テーブルには、idAddress - identty int という名前の主キーがあります。

私はサイト上の多くの提案を読みましたが、これを乗り越えることはできません.

    private motion_care_360Entities db = new motion_care_360Entities();
    public ActionResult GetItems(GridParams g)
    {
        var list = db.Addresses.Include("AddressCountry").Include("AddressState").Include("AddressType").AsQueryable();
        var list1 = list.OrderBy(o => idAddress).ToList();
        var l1 = list1[0].AddressState.State;

        return Json(new GridModelBuilder<Address>(list, g)
            {
                Key = "idAddress", // needed when using Entity Framework, usually it's Id
                                   // If you're using EF, it's needed so that the data will be ordered by it before paging it
                Map = o => new
                {
                    AddressTypeType = o.AddressType.Type,
                    AddressStateState = o.AddressState.State,
                    AddressCountryCountry = o.AddressCountry.Country,
                    o.City,
                }
            }.Build());
    }
}
4

2 に答える 2

0

それが必要だろうlist.OrderBy(o => o.idAddress).ToList();

oオブジェクトの idAddress (つまり、ラムダ式から) 自体であることを指定する必要があります。

于 2013-02-25T16:11:44.730 に答える
0

あなたは実際に多くのことについて混乱しています。まず、あなたが主張している問題は、MVC または EF とは何の関係もありません。それは GridModelBuilder が何であれ関係があります。それは MVC の一部ではないため、サードパーティのコントロールを使用する必要があります。

次に、OrderBy を使用するときではなく、GroupBy を使用するときに Key が使用されると推測しています (使用しているサードパーティのコントロールがわからないため)。OrderBy にはキーがありませんが、GroupBy にはあります。しかし、サードパーティのツールがフレームワークの一部であると考えているように見えるので、それを知るのは困難です.

3 番目に、OrderBy は list1 に割り当てられますが、これは決して使用しません。順序付けされていないリストを使用します。

第 4 に、既に Queryable であるため、AsQueryable は必要ありません。

于 2013-03-09T03:34:14.777 に答える