2009-10-20 6 views
6

Ich erhalte diesen Fehler, wenn ich in einem GridView Steuerelement auf die Schaltfläche Löschen/Verknüpfung klicke.LinqDataSource unterstützt die Select-Eigenschaft nicht, wenn die Lösch-, Einfüge- oder Aktualisierungsvorgänge aktiviert sind.

LinqDataSource [Datasource] unterstützt nicht die Select-Eigenschaft, wenn die Delete, Insert oder Update-Operationen

Ich verstehe nicht wirklich aktiviert sind, warum ich diesen Fehler bin immer, weil ich bereits Ich habe das gleiche auf einer anderen Webseite in meiner Site gemacht, aber die Tabelle, aus der die Daten gelesen werden, hat keine Fremdschlüssel. Bekomme ich deshalb den Fehler?

Wenn es darauf ankommt, wird die AutoGenerateDeleteButton Eigenschaft auf True festgelegt und ich verwende eine linqdatasource, um die Daten aus der Datenbank abzurufen.

würde Jede Eingabe erkannt werden :)

Antwort

11

Am Ende entferne ich hatte alle Daten zu wählen (mit der Option * in dem Datasource-Assistenten), dann die Spalten, die ich wollte nicht in angezeigt werden die GridView. Dies könnte ein wenig ineffizient sein, aber es hat funktioniert.

1

Gerade lief in dieses Problem und fand eine Lösung und Erklärung anderswo.

Die SELECT-Anweisung führt zu einem anonymen Typ, der möglicherweise nicht zugeordnet wird, wenn die Delete/Update/Insert-Anweisung von LinqDataSource generiert werden soll. Die Quellentabelle (linq) wird zum Generieren der Metadaten für die Datenbankoperation verwendet.

Wir werden mit der kleinen Leistungseinbuße leben müssen, wenn wir alle Spalten in der Datenquelle abrufen müssen, aber hinter den Kulissen etwas Arbeit erledigen. Ich mag.

Und wenn Sie GridView verwenden, müssen Sie die DataKeyNames-Eigenschaft für die Primärschlüssel der Datenquelle angeben.

Kristallklar? ;)

0

Sicher, das Problem besteht darin, dass Sie den Primärschlüssel in die Datenquellenkonfiguration einschließen müssen, und dann diesen Primärschlüssel als unsichtbar markieren.

Verwandte Themen