MVC5内部网站点。一个视图有两个数据集发送到视图。这会正确显示数据。但数据是错误的#39; 这是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);
我可以使用SQL分析器来捕获正在使用的SQL并在SQL管理工作室中运行它以返回结果
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
单个交易附有三个链接,每个链接都有一个注释
当我调试c#时,结果不符合预期。 调试第二个列表(或绝望的var音符)我期待3个不同的结果,但它出现是因为&#39;注意&#39;字段相同,三个结果相同。 即三个结果,但结果的第一行全部。 如果&#39;注意&#39;字段包含唯一数据,然后按预期将行放入列表中 有关调试的屏幕转储,请参阅附带的jpg From Debugging code
模型类我正在获取这样的数据
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会选择正确的数据。 List,无论是使用Lambda还是LINQ,第一行都重复了三次 视图正确显示错误数据。 感激不尽的任何帮助
答案 0 :(得分:0)
好的,所以这完全取决于模型上的Entity Keys。 我打开* .edmx图并右键单击此视图的三个字段中的每一个,并将它们设置为实体键,勾选以创建唯一键。我认为在模型类中这样做会做到这一点;我缺乏经验。 重新构建项目,现在运行正常。这个&#39;实体密钥&#39;不以任何方式更改模型类,只是edmx文件(它出现)。但是,我想因为我拥有的密钥(trx_ctrl_num)在三条记录中并不是唯一的,所以它得到了混淆&#34;。 感谢