Ich modifiziere ein vorhandenes Projekt, um linq zu SQL als Test zu verwenden. Ich verwende linq, um gespeicherte Prozeduren aufzurufen.linq to sql C# gleicher Name für Entität und aspx Seite
Ich hatte ein paar Probleme, Dinge zur Arbeit zu bringen. Es funktionierte einfach nicht wie die Beispiele, die ich gesehen habe und die kleinen Experimente, die ich vorher gemacht hatte - und dann fiel es mir auf. Ich denke, ich weiß, was das Problem ist, aber ich bin mir nicht sicher, wie ich es beheben soll.
So, hier ist der Code: "NOPE"
using (TEMPDataContext dbc = new TEMPDataContext(connectionString))
{
List<TEMPquest> qlist = new List<TEMPquest>();
qlist = (List<TEMPquest>)dbc.GetTEMPQuestByID(id);
if (qlist.Count == 0)
{
if (debug_level > 1) …
}
else if (qlist.Count > 1)
{
if (debug_level > 1) …
}
else
{
// There is exactly one row of data, so use it to populate the controls on the aspx side
TEMPquest tq = (TEMPquest) qlist[0];
int id = tq.uid //<=== NOPE!
}
Das Kommentarzeile mit dem großen darauf verursacht das Problem. Es stellt sich heraus, dass die Seite, die dieser Code unterstützt, TEMPquest.aspx heißt. Wenn ich also die Variablen qlist und tq deklariere, wird die Seite und nicht die Entität verwendet! Alle Eigenschaften dieser Variablen sind Eigenschaften der Seite, nicht die Entität!
Ich könnte das beheben, indem ich entweder den Seitennamen oder den Namen der Tabelle/Entity ändere, aber ich würde es vorziehen, nicht so unauffällig für die Arbeit meines Chefs wie möglich zu sein. Gibt es eine Möglichkeit, programmatisch auf die OTHER TEMPquest - die Entität - anstatt auf die Seite zu verweisen?
Ich dachte dbc.TEMPquest, aber das ist es nicht. Gibt es eine Möglichkeit, dies zu tun, außer die Seite oder die Tabelle/Entität umzubenennen? (Nichts ist knifflig, bitte. Wenn es nicht einfach ist, dann werde ich Sachen umbenennen.)
Warum stört Sie noch fragen? Umbenennen der Seite würde wahrscheinlich alle 2 Sekunden dauern. – mason