Ich arbeite an einem neuen Projekt, das Linq To SQL
verwenden muss. Ich wurde gebeten, eine generische oder wiederverwendbare Klasse Linq to SQL
zu erstellen, mit der gespeicherte Prozeduren ausgeführt werden können.Erstellen Sie wiederverwendbare Linq To SQL für gespeicherte Prozeduren
In ADO.Net
wusste ich, wie dies in einer Reihe von vorbei genau das tun, was ich wollte auszuführen und ich in verschiedenen Saiten für jede Abfrage passieren konnte ich laufen müssen:
SqlCommand cmd = new SqlCommand("myStoredProc", conn); // etc, etc
ich kämpfen werde mit wie man etwas Ähnliches in Linq To SQL
erstellt, wenn es überhaupt möglich ist. Ich habe eine .dbml
Datei erstellt und meine gespeicherte Prozedur hinzugefügt. Als Ergebnis kann ich die Ergebnisse zurück, den Code unter Verwendung von:
public List<myResultsStoreProc> GetData(string connectName)
{
MyDataContext db = new MyDataContext (GetConnectionString(connectName));
var query = db.myResultsStoreProc();
return query.ToList();
}
Der Code funktioniert, aber sie wollen, dass ich ein Verfahren zu schaffen, die unabhängig von gespeicherten Prozedur zurückgeben werde ich es sagen laufen. Ich habe online gesucht und mit Kollegen darüber gesprochen und war nicht erfolgreich bei der Suche nach einer Möglichkeit, wiederverwendbare gespeicherte Proc-Klassen zu erstellen.
Gibt es eine Möglichkeit, eine wiederverwendbare Linq to SQL
Klasse zu erstellen, um gespeicherte Procs auszuführen?
Edit:
Was ich suche ist, wenn es eine Möglichkeit, so etwas wie die folgenden zu tun ist?
public List<string> GetData(string connectName, string procedureName)
{
MyDataContext db = new MyDataContext (GetConnectionString(connectName));
var query = db.procedureName();
return query.ToList();
}
Ich habe die MSDN docs auf Linq To Sql
prüft und diese die Tabelle in der IEnumerable
zeigen:
IEnumerable<Customer> results = db.ExecuteQuery<Customer>(
@"select c1.custid as CustomerID, c2.custName as ContactName
from customer1 as c1, customer2 as c2
where c1.custid = c2.custid"
);
ich nach etwas suchen sehr allgemein gehalten, wo ich in einem String-Wert der gespeicherten schicken proc, dass ich ausführen möchte. Wenn dies nicht möglich ist, gibt es Unterlagen darüber, warum dies nicht möglich ist? Ich muss beweisen, warum wir nicht einen String-Wert des Namens des Verfahrens passieren kann in Linq To Sql
Haben Sie gespeicherte Prozeduren ausführen müssen, die Sie in der .dbml Datei modelliert nicht haben kann? Und möchten Sie Entitäten zurückgeben, die in Ihrer .dbml zugeordnet sind? – CodingGorilla
sie werden höchstwahrscheinlich in der .dbml zugeordnet werden, aber ich denke, es könnte einen Fall geben, wo es nicht – Taryn
war Dies ist nicht die Art, wie LINQ to SQL verwendet werden soll. Sie arbeiten gegen das System. Versuchen Sie, so zu arbeiten, wie es verwendet werden soll. – usr