MVC5イントラネットサイト。 1つのビューには、2つのデータセットがビューに送信されます。これにより、データが正しく表示されます。しかし、データは「間違っている」。ここ は、単一のトランザクションが添付3つのリンクがありMVC5モデルのグループ化結果が正しくない
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
として私が使用しているSQLをキャッチし、その結果を返すためにSQL管理スタジオでそれを実行するために、SQLプロファイラを使用することができますC#コード
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);
です、各リンクにはノートがあります
私はC#をデバッグすると、結果が期待どおりになりません。 2番目のリスト(または絶望のvarノート)のデバッグ3つの別個の結果が期待されますが、「Note」フィールドが同じで、3つの結果が同じであるために表示されます。 、すなわち3つの結果が、結果の最初の行のすべてです。 「注意」フィールドは固有のデータが含まれている場合、私はこのようになりますためのデータを取得していデバッグ From Debugging code
モデルクラスの画面ダンプの添付JPGを参照してください 予想通り は、その行はリストに入れます
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; }
}
は私がして、キー値 ので、要約すると、実行しますSQLが正しいデータを選択せずに試してみました。 LambdaまたはLINQを使用するかどうかにかかわらず、最初の行は3回繰り返されます。 ビューに不正なデータが正しく表示されます。 喜んでお寄せいただきありがとうございました
ノートのテーブル設定は何ですか?それはトランザクションIDを持っていますか? –
私が見ているビューは単一のテーブルからです。楽しみのためだけに(?)私は\t _SELECT 'VO205164' trx_ctrl_num、 'リンク1' invoice_link、 '' ノート \t組合 \t SELECT 'VO205164' trx_ctrl_num、 'リンク2' invoice_link、 '' ノート \t組合にビューを変更しました \t 'VO205164' trx_ctrl_num、 'link 3' invoice_link、 '' note_を選択してください。結果は同じでした。MVCから生成され、SQLプロファイラを介してキャプチャされ、SQL管理Studioで実行されるSQLは、期待される結果を返しますが、データモデルは最初のリンクを繰り返します。これは古い既存のデータベース –
を参照していますので、ビューをストアドプロシージャに変更しました。これによりデータが正しく取得され、ビューフォームに正しく表示されます。私はVisual Studio 2015を試して更新し、それが変更を行うかどうかを確認します –