【问题标题】:ASP.NET MVC 4 Joining two tablesASP.NET MVC 4 连接两个表
【发布时间】:2016-06-25 21:06:56
【问题描述】:

我有 2 个表,一个是 Issues,另一个是 JiraAssignee。问题有名为AssigneeID 的列,JiraAssignee 由 AssigeeID 和 AssigneeName 组成。我需要那里的 AssigneeName。

我尝试过查询,但它不会返回来自JiraAssignee 表的值。

   public ActionResult COED()
    {
     var model = new SO_80.Models.Tables();
     string COED = "COED";

     model.Issue = db.Issues.Where(d => 
     model.JiraAssignee = (from d in db.Issues.Where(d => d.JiraIssueKey.Contains(COED)).ToList()
                              join j in db.JiraAssignees.ToList() on d.JiraAssigneeID equals j.ID
                              select new JiraAssignee() { DisplayName = j.DisplayName });
     return View(model);
    }

【问题讨论】:

  • 您的ToList() 调用导致提供程序独立运行查询,并让 LINQ to Objects 实际上处理客户端内存中的 JOIN。我不相信这是你的问题。您是否尝试将查询编写为原始 SQL 并执行?
  • @siva.k 是的,我已经尝试在 sql server management studio 中编写它并且它在那里工作。我无法用homecontroller.cs 写它。也许我在语法上做错了什么。

标签: c# mysql asp.net asp.net-mvc entity-framework


【解决方案1】:

您可以使用此代码:

public ActionResult COED()
    {
     var model = new SO_80.Models.Tables();
     string COED = "COED";
     Issue result = null;
     using (Entities db = new Entities())
            {
              result = (from d in db.Issues
                        join j in db.JiraAssignees on db.Issues equals j.ID 
                        where j.JiraIssueKey.ToLower().Trim().Contains(COED)
                        select d).FirstOrDefault();
            }
     return View(result);
    }

【讨论】:

  • @Muneeb 如果此答案对您有帮助,请点赞并接受此答案,以便人们知道这是正确答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-03
  • 2018-06-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多