1

私のアプリケーションは以下のエラーを示しています:

ストアクエリ(DbSet、DbQuery、DbSqlQuery)への直接のデータバインディングはサポートされていません

ドロップダウンコントロールをこのLINQステートメントにバインドしようとしているためです。以下で私のコードを確認してください。

 using (AdventureWorksEntities dw = new AdventureWorksEntities())
        {
            ddlCon.DataSource = (from em in dw.Employees
                       select new { em.Title, em.EmployeeID }).Distinct().OrderBy(name => name);
            ;


            ddlCon.DataTextField = "Title";
            ddlCon.DataValueField = "EmployeeID";
            ddlCon.DataBind();
        }

注意:このエラーの理由とその解決策を回答でよく説明してください。

4

2 に答える 2

3

他の質問と同じようにToList()、クエリ結果に直接バインドすることはできないため、を使用する必要があります。

そうは言っても、あなたOrderByが間違っているのではないかと思います。これはおそらく次のようになります。

 ddlCon.DataSource = (from em in dw.Employees
                      select new { em.Title, em.EmployeeID })
                    .Distinct()
                    .OrderBy(emp => emp.Title)  // Pick Title or EmployeeID here
                    .ToList();
于 2012-10-17T16:48:27.447 に答える
1

クエリを実行し、データベースからメモリに結果をもたらす必要があります。データソースとして使用できるのは、メモリ内のオブジェクトのみです。ToListこれは、クエリに適用することで実現できます。

ddlCon.DataSource = (from em in dw.Employees
                     select new { em.Title, em.EmployeeID })
                    .Distinct()
                    .OrderBy(x => x.Title)
                    .ToList();
于 2012-10-17T16:47:30.710 に答える