Ich stieß kürzlich auf ein Problem mit linq auf einem freigegebenen Host.
Der Host ist Shared Intellect und sie unterstützen v3.5 des Frameworks. Ich bin jedoch unsicher, ob SP1 installiert ist. Mein Verdacht ist, dass sie es nicht tun.Linq 2 SQL auf freigegebenen Host
Ich habe eine einfache News
Tabelle, die die folgende Struktur:
NewsID uniqueidentifier
Title nvarchar(250)
Introduction nvarchar(1000)
Article ntext
DateEntered datetime (default getdate())
IsPublic bit (default true)
Mein Ziel aus dieser Tabelle sind die drei neuesten Datensätze, die angezeigt werden. Ich ging zunächst die D & D-Methode (ich weiß, ich weiß) und erstellt eine Linq-Datenquelle und war nicht in der Lage, eine Möglichkeit zu finden, die Ergebnisse so zu begrenzen, wie ich es wünschte, also entfernte ich das und schrieb folgendes:
var dc = new NewsDataContext();
var news = from a in dc.News
where a.IsPublic == true
orderby a.DateEntered descending
select new { a.NewsID, a.Introduction };
lstNews.DataSource = news.Take(3);
lstNews.DataBind();
Dies funktionierte perfekt auf meinem lokalen Rechner.
Allerdings, wenn ich alles auf den gemeinsamen genutzten Host hochgeladen, erhielt ich folgende Fehlermeldung:
.Read_<>f__AnonymousType0`2
(System.Data.Linq.SqlClient.Implementation.ObjectMaterializer`1<System.Data.SqlClient.SqlDataReader>)
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.MethodAccessException:
.Read_<>f__AnonymousType0`2
(System.Data.Linq.SqlClient.Implementation.ObjectMaterializer`1<System.Data.SqlClient.SqlDataReader>)
Ich habe versucht, den Fehler auf Google zu suchen, aber ohne Erfolg. Ich versuchte dann, meine Abfrage in jeder Weise zu ändern, die ich mir vorstellen konnte, verschiedene Kombinationen der wo/orderby Parameter zu entfernen sowie meine Abfrage auf eine einzelne Spalte zu beschränken und sogar den Take-Befehl zu entfernen.
Meine Frage kommt daher in 3 Teilen:
- Hat jemand anderes dies festgestellt und wenn ja, eine „schnelle“ fix ist da?
- Gibt es eine Möglichkeit, die Datenquelle zu verwenden, um die Zeilen zu begrenzen?
- Gibt es irgendeine Art und Weise zu bestimmen, welche Version des Frameworks der Hostern sie direkt von E-Mail kurz ausgeführt wird (was ich getan habe und eine Antwort erwarten)