SellOrder 的model中有 public virtual ICollection<SellItem> SellItems { get; set; }
SellItem 表中有Goods表的主键 id 和 SellOrder 的主键 id
现在想要在SellOrder 的Controllers 中通过SellItems 查询到 Goods表中的数据。
不知道怎么写。救命啊!!!!
直接使用SellItems难道不行吗?
直接使用SellItems 只能取到自己表里面的数据。 Goods的查不到
@光阳: SellItems不是Goods表的实体么?如果不是话,就不能直接关联查询了。如果不强求用lambda方式的话,可以直接EF动态查询。
@幻天芒:
SellOrder 的model中有 public virtual ICollection<SellItem> SellItems { get; set; }
SellItem 表里面存的是SellOrder 和 Goods 的主键id
现在就是想做个查询返回到view上。 goods表只有一个主键id在SellItem 表中。
@幻天芒: 不让我发图。你有时间吗。我加你QQ截图给你看下。谢谢了
@光阳: 上班无Q。你试下楼下的方式吧。你这样的设计不太符合EF的模式呢。。
@幻天芒: 弄明白了。是直接把id 传到SellItems表对比。数据就的查出来了。
现在是返回return View(sel); sel是查询的list。
不知道 view中怎么把sel中的数据展示出来了。。。
@光阳: 既然是强类型,那就点点点就出来了。
@幻天芒: 数据出来了。现在还有个小问题帮忙看看呗
@Html.ActionLink("返回上一步修改", "Create", new { id = Model.SellOrderId })
返回上一步需要带id过去。现在我不管怎么写id的值都报错:
CS1061: “System.Collections.Generic.IEnumerable<TheNew.Areas.sell.Models.SellItem>” 不包含“SellOrderId”的定义,并且找不到可接受类型为 “System.Collections.Generic.IEnumerable<TheNew.Areas.sell.Models.SellItem>” 的第一个参数的扩展方法“SellOrderId”(是否缺少 using 指令或程序集引用?)
view上面的引用:
@using TheNew.Areas.sell.Models
@model IEnumerable<TheNew.Areas.sell.Models.SellItem>
@光阳: 后台数据过来,用IList吧。
@幻天芒: 返回的是Lits
@光阳: return View(orders.ToList());
@光阳: 你的Model是个List,那肯定点不出来Model.SellOrderId啊。。。
@幻天芒: 里面的SellOrderId 值是唯一的。有没有办法取出来。我传到别的页面?
@光阳: 如果唯一,那可以用
if(Model!=null && Model.Count >0)
{
Model[0].SellOrderId
}
@幻天芒: 无法将带 [ ] 的索引应用于“System.Collections.Generic.IEnumerable<TheNew.Areas.sell.Models.SellItem>”类型的表达式
@Html.ActionLink("返回上一步修改", "Create", new { id = Model[0].SellOrderId })
直接这么写行么。
@光阳: @model IList<TheNew.Areas.sell.Models.SellItem>
@幻天芒: Model.FirstOrDefault().SellOrderId 是这么写的。ok了取到值了。结贴。谢谢
@光阳: :)不过建议你还是要多注意下C#的基础知识。比如部分语法和类型转换等。
var data = context.SellOrder.Include(n => n.SellItems.Select(g=> g.Goods));
return View(data.tolist());
这样返回对吗。怎么把查询结果返回到 View上面?
SellOrder sel = db.SellOrders.Find(id);
return View(sel);
我原来是这么写的。但是只能查到model.SellItems 里面的值查不到goods
public ActionResult Choose(string id)
{
var data = db.SellOrders.Include(n => n.SellItems.Select(g => g.Goods) );
//SellOrder sel = db.SellOrders.Find(id);
return View(这里的返回值怎么写呀);