0

DropDownList の SelectListItem が 1 つあります。いくつかの条件に基づいてフィルタリングする必要があります。条件を追加しようとすると、次のようなエラーが表示されます (LINQ to Entities はメソッド 'System.String ToString()' メソッドを認識せず、このメソッドはストア式に変換できません)。ここにそのコードを追加します。これを解決するために私を導いてください。

コード

    IEnumerable<SelectListItem> IssueId = (from txt in Db.Issues where txt.BibId == BibId
            select new SelectListItem()
        {
            Text = txt.Description,
            Value = txt.Id.ToString(),
            Selected = true,
        });
        SelectList IssueIds = new SelectList(IssueId, "Value", "Text");
        ViewBag.IssueId = IssueIds;

ありがとう

4

3 に答える 3

1

これを試して:

LINQ2EF は ToString() を認識しませんが、AsEnumerable() の後で ToString() が実装されるとローカル コレクションを取得します。

        IEnumerable<SelectListItem> IssueId = 
(from txt in Db.Issues.Where(e => e.BibId == BibId).AsEnumerable()
    select new SelectListItem()
    {
        Text = txt.Description,
        Value = txt.Id.ToString(),
        Selected = true     
});
于 2012-12-11T15:09:16.473 に答える
0

その拡張子はエンティティへのlinqによってソートされていないようですが、問題が発生したらマッピングを行うことができます。

var issues = (from issue in Db.Issues 
               where issue .BibId == BibId 
               select issue ).ToList();     

IEnumerable<SelectListItem> IssueId = (from txt in issues 
                                       where txt.BibId == BibId
                                      select new SelectListItem()
                                      {
                                        Text = txt.Description,
                                        Value = txt.Id.ToString(),
                                        Selected = true,
                                      });
于 2012-12-11T15:15:46.687 に答える
0

Linq To Sql は txt.Id.ToString() の TSQL を生成できません

クエリの実行後に代わりに結果を反復処理するか、xeondev が提案するように Enumerable にキャストする必要があります。

于 2012-12-11T15:12:33.833 に答える