MVC5 Intranet-Site. In einer Ansicht werden zwei Datensätze an die Ansicht gesendet. Dies zeigt die Daten korrekt an. Aber die Daten sind "falsch". Hier ist die C# -CodeMVC5-Modellgruppierungsergebnisse nicht korrekt
List<object> myList = new List<object>();
myList.Add(db.hw_poapp_VoucherDetail_vw.Where(a => a.trx_ctrl_num == id).ToList());
myList.Add(db.hw_poapp_VoucherDetailNotes_vw.Where(a => a.trx_ctrl_num == id).ToList());
// try this incase it's a Lambda thing
var notes = from d in db.hw_poapp_VoucherDetailNotes_vw
where d.trx_ctrl_num == id
select d;
return View(myList);
I SQL Profiler kann die SQL fangen verwendet wird und es in SQL Management Studio ausführen, um die Ergebnisse als
trx_ctrl_num invoice_link note
VO205164 X:\SOME.pdf Note 1
VO205164 X:\XXXXX12345.txt Note 1
VO205164 X:\Tiny 2.jpg Note 1
Eine einzelne Transaktion zurück hat drei angebrachten Links , jeder Link hat eine Notiz
Wenn ich das C# debuggen, sind die Ergebnisse nicht wie erwartet. Debugging der zweiten Liste (oder die var Note aus Verzweiflung) Ich erwarte 3 verschiedene Ergebnisse, aber es erscheint, weil das 'Note' Feld identisch ist, sind die drei Ergebnisse identisch. , d. H. Drei Ergebnisse, aber die gesamte erste Zeile aus den Ergebnissen. Wenn das Feld ‚Anmerkung‘ eindeutige Daten enthält, dann bekommen die Linien in die Liste gesetzt, wie erwartet den beigefügten jpg für Bildschirm-Dumps des From Debugging code
Die Modellklasse debug Siehe ich Daten, wie dies für Aussehen bekommen
public partial class hw_poapp_VoucherDetailNotes_vw
{
[Key]
[Display(Name = "Voucher No:")]
public string trx_ctrl_num { get; set; }
[Display(Name = "Voucher Link")]
public string invoice_link { get; set; }
[Display(Name = "Note:")]
public string note { get; set; }
}
ich habe versucht, mit und ohne Schlüsselwert So in der Zusammenfassung, die SQL, die die richtigen Daten auswählt ausgefuehrt werden. Die Liste, ob Lambda oder LINQ verwendet nur hat die erste Zeile dreimal wiederholt Die Ansicht zeigt die fehlerhaften Daten korrekt an. Jede Hilfe dankbar erhalten
Was ist das Tabellen-Setup für die Notizen? Hat es die Transaktions-ID? –
Die Ansicht, die ich betrachte, stammt aus einem einzigen Tisch. Just for fun (?) Änderte ich den Blick auf \t _Select 'VO205164' trx_ctrl_num, 'Link 1' INVOICE_LINK, '' note \t Vereinigung \t select 'VO205164' trx_ctrl_num 'Link 2' INVOICE_LINK, '' note \t Union \t Wählen Sie 'VO205164' trx_ctrl_num, 'link 3' invoice_link, '' note_. Und das Ergebnis war das gleiche, das SQL, das von MVC generiert und über SQL Profiler erfasst und in SQL Management Studio ausgeführt wird, gibt die erwarteten Ergebnisse zurück, aber das Datenmodell wiederholt die erste Verknüpfung. Bitte beachten Sie, dass es sich um eine alte existierende Datenbank handelt. –
FYI, ich habe die Ansicht in eine Stored Procedure geändert, und das erhält die Daten korrekt und es wird korrekt auf dem Ansichtsformular angezeigt. Ich werde versuchen, auf Visual Studio 2015 zu aktualisieren und sehen, ob das eine Änderung vornimmt –