【问题标题】:Linq to join two tables using a value to where clause dynamicallyLinq使用值动态连接两个表到where子句
【发布时间】:2023-04-10 15:39:03
【问题描述】:

这些是我的tables

我想要一个输出,其中第一个表的U_CCode,这也是我的第二个表的外键,可用于连接两者以显示类似的内容(注意:这里我已将A1 作为参数传递给where 子句,但我希望它动态选择我通过字符串变量分配给控制器的 U_CCode 的任何值。我想使用 LINQ 来实现这一点,但我无法理解如何在 MVC 控制器中使用它。

我想将此查询的output 分配给我想通过viewbag 在我的视图中使用的selectlist

我是新手,有人可以帮我编写这个查询的脚本吗?

代码

public ActionResult Create(string U_CCode)
{
    var departments = db.Class.Where(q => q.U_CCode == U_CCode); 
    ViewBag.SelectedDepartment = new SelectList(departments, "U_CLCode", "U_CLName");
}

【问题讨论】:

  • 你能展示一下你现有的实现吗?
  • @SamGhatak var部门 = db.Class.Where(q => q.U_CCode == U_CCode); ViewBag.SelectedDepartment = new SelectList(departments, "U_CLCode", "U_CLName"); // 这里 Class 是我的第二个表的 dbset。
  • @gypsyCoder public ActionResult Create(string U_CCode){ var部门= db.Class.Where(q => q.U_CCode == U_CCode); ViewBag.SelectedDepartment = new SelectList(departments, "U_CLCode", "U_CLName");}
  • 那到底是什么问题
  • @VarunVasishtha linq 查询不起作用。它抛出空值。

标签: c# asp.net-mvc linq sql-server-2008 controller


【解决方案1】:

试试这样:(已编辑)

var departmentsQuery = (from e in db.Class where e.U_CCode==U_CCode select e).ToList();
ViewBag.SelectedDepartment = departmentsQuery;

将它传递给视图..

在视图中:

@Html.DropDownList(
    "name", 
    new SelectList(
        ((List<yourTypename>)ViewBag.SelectedDepartment).Select(x => new { Value = x.U_CCode, Text = x.U_CLName }),
        "Value",
        "Text"
    )
)

【讨论】:

  • 谢谢你,但我的模型中没有这个字段,我无法添加它,因为除此之外,我在模型中拥有的所有其他字段都将动态添加因此,表将使用列表类型的视图模型(不包括此下拉字段)。我只想将 linq 查询的输出列表显示在下拉列表中,因此我会将结果作为字符串参数传递给 beginform 行和模型(在我看来,这是一个类似于动态表的网格)。
  • 所以只需从 viewbag 中提取它...让我编辑它,可能会有所帮助
  • 如果有帮助,请接受答案。它也可以帮助未来的用户......干杯:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多