【问题标题】:get value from another tabe for two same field in a table从另一个表中获取表中两个相同字段的值
【发布时间】:2017-04-10 05:00:01
【问题描述】:

我有一个视图,我从名为“PromotionHistory”的表中获取数据。但在我的表中,我存储了指定 ID。在 Designation 表中,我有 DesignationName 字段和 DesignationID。两个表都有关系。我正在使用 Web Api。

我的代码-

     [HttpGet]
        [Route("api/EmployeeApi/GetPromotionReport/")]
        public object  GetPromotionReport()
        {
            List<PromotionHistory> finalData;
            //var proReport = db.PromotionHistories.Include(e => e.Designation).Include(e => e.Employee);

            IEnumerable<PromotionHistory> pro = (from st in db.PromotionHistories select st).ToList();

            foreach (PromotionHistory proH in pro)
            {

                var preD = proH.PreviousDesigID;
                var currentD = proH.CurrentDesigID;

                var preDName=(from dd in db.Designations where dd.DesignationID==preD select new{dd.DesignationName}).FirstOrDefault() ;
                var CurrentDName=(from dd in db.Designations where dd.DesignationID==currentD select new{dd.DesignationName}).FirstOrDefault();
  var cc = (from proHis in db.PromotionHistories

                         select new
                         {
                             proHis.PromotionID,
                             proHis.EmployeeID

                         }

                             ).ToList();

                finalData.AddRange(cc);
                finalData.Add(preDName);


            }

我想为两个字段(previousPost,Current Post-see image)获取 DesignationName 而不是 ID 当我使用 Ajax 时,如何在 ASP Web Api 中进行 Linq 或 SQL 查询。

我想要什么:: PromotionID ,EmplyeeID ,PromotionDate, 以前的职务 , 当前职务

【问题讨论】:

  • 您检索的代码是什么?用帖子更新它。在问一个问题之前。阅读this

标签: c# asp.net-mvc linq asp.net-web-api


【解决方案1】:

您可以添加另一个类,并返回新类的列表。像这样

public object GetPromotionReport()
    {
        List<PromotionHistorywithNames> finalData;
        finalData = (from st in db.PromotionHistories
                     select new PromotionHistorywithNames
                     {
                         PromotionID = st.PromotionID,
                         EmployeeID = st.EmployeeID,
                         PreviousPost = (from dd in db.Designations where dd.DesignationID == st.Promotion select dd.DesignationName).FirstOrDefault(),
                         CurrentPost = (from dd in db.Designations where dd.DesignationID == st.currentD select dd.DesignationName).FirstOrDefault()
                     }).ToList();
        return finalData;
    }

还有这样的班级

    public class PromotionHistorywithNames{
        public int PromotionID{set;get;}
        public int EmployeeID{set;get;}
        public DateTime Promotion{set;get;}
        public string PreviousPost{set;get;}
        public string CurrentPost{set;get;}
    }

【讨论】:

  • 你太棒了太棒了太棒了!如果我有投票权,我会投票给你一千次。你的回答不仅给了我的解决方案,而且给了我新的逻辑。我为你感到很自豪。我可以要你的邮件吗? nuruddinfawel 是我的 gmail 地址。
【解决方案2】:

我通过这个解决了我的匿名类型问题:它可以在没有模型类的情况下完成

 [HttpGet]
    [Route("api/MemberApi/GetMembersWithLink/")]
    public object GetMembersWithLink()
    {


        var member = (from members in db.Members
                      where members.Status == 1
                      select new
                      {
                          members.MemberName,
                          members.Position,
                          members.Phone,
                          members.Picture,
                          members.MotherName,
                          members.Village,
                          members.Email,
                          linkName = (from gg in db.Members where gg.MemberID==  members.Link select gg.MemberName).FirstOrDefault()
                      }).ToList();


        return member.AsEnumerable();
    }

【讨论】:

    猜你喜欢
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    相关资源
    最近更新 更多