Wie binden gridview mit linq/Entity Framework?

Ich zu binden, müssen GridView ich bin mit diesem code:

  ProductDBEntities db = new ProductPDBEntities();

    var pro = from u in db.Products where u.PID == 1 select u;

    if (pro != null)
    {
        GridView1.DataSource = pro;
        GridView1.DataBind();
    }

und immer diese Fehlermeldung.

System.InvalidOperationException:
Die Sequenz enthält mehr als ein
element

Kann jemand bitte sagen Sie mir, was ich bin doin falsch?

  • Ich denke, Sie werden brauchen, to wandeln Sie es in ToList() für Sie arbeiten als DataSource für ein gridview
  • ich habe versucht, ToList-Funktion seine mir dieser Fehler .. Datenquelle ist ein Ungültiger Typ. Es muss entweder ein IListSource, IEnumerable, oder IDataSource ELAPDBEntities db = new ELAPDBEntities(); var assetFinan = von u in db.AssetFinancings, in dem u.AppID == AppID wählen Sie u, wenn (assetFinan != null) { gvAssetFinance.DataSource = assetFinan.ToList(); gvAssetFinance.DataBind(); }
  • U müssen, um ToList, wenn Sie die Zuordnung zu pro
  • können Sie mir ein Beispiel .. bitte
  • Sie brauchen nicht ToList(). Sie können das binden eines IEnumerable an ein GridView. Und pro im code ist ein IQueryable was ist ein IEnumerable. Die Ausnahme macht keinen Sinn im Kontext des Codes, den Sie haben oben gezeigt. Auf welcher Zeile bekommst du genau diese Ausnahme, wenn Sie Debuggen?
  • in der Zeit der Bindung
  • Können Sie zeigen mehr von deinem code (das GridView-Teil in Ihrer aspx-Datei, vielleicht andere event-Handler des GridView-Steuerelements, die Sie implementiert haben, etc.)? Der Ursprung dieser Ausnahme muß irgendwo anders sein, der code, den Sie gezeigt haben, ist gültig. (Zum Beispiel: die Single() oder SingleOrDefault() Erweiterung Methoden ein Kandidat für diese Ausnahme)

InformationsquelleAutor Kay | 2011-05-03
Schreibe einen Kommentar