首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请问 c# linq 2个表查询的有关问题

2013-09-26 
请教 c# linq2个表查询的问题我有2个表分别是tab1 \ tab2tab1(员工表)结构如下:列名useriduserName1张三2

请教 c# linq 2个表查询的问题
我有2个表分别是  tab1 \ tab2

tab1(员工表)结构如下:
列名  userid  userName
       1       张三
        2      李四
------------------------
tab2(每月的工资表)结构如下
列名  userid  工资   
        1      1000
        1       2000
        2       4000
        2       1000
------------------   
现在要用linq 查询出  每个人当前合计发放了多少工资
--------------------
我用下面的linq查询对吗?调试倒是没有问题
from ff in tab1
join uu in tab2 on ff.userid equals uu.userid

----------------------------------------------

好了总体情况说明白了,问题是这样的
我现在用的是MVC  已经建立了相应的实体类
我该如何将2个表合成一个表,然后显示出来?
是不是需要再建立一个由2个表的join后所有列的实体类?
请告知。











c# linq mvc
[解决办法]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Staff> lstaff = new List<Staff>();
            lstaff.Add(new Staff { Sid=1, Sname="李斯"});
            lstaff.Add(new Staff { Sid = 2, Sname = "秦武" });
            List<Salary> lsalary = new List<Salary>();


            lsalary.Add(new Salary { Sid = 1, Payment = 1000 });
            lsalary.Add(new Salary { Sid = 1, Payment = 2212 });
            lsalary.Add(new Salary { Sid = 2, Payment = 2000 });
            lsalary.Add(new Salary { Sid = 2, Payment = 4212 });

            var query = from ff in lstaff.AsEnumerable()
                        join uu in lsalary.AsEnumerable() on ff.Sid equals uu.Sid
                        group uu by new { sid = uu.Sid,sname=ff.Sname } into d
                        select new StaffSalaryViewModel { Sid = d.Key.sid, Sname = d.Key.sname,PaymentSum=d.Sum(o=>o.Payment) };
            query.ToList().ForEach(ss=>Console.WriteLine(ss.Sid+"  "+ss.Sname+" "+ss.PaymentSum));
            Console.ReadKey();
        }
    }

    public class Staff
    {
        public int Sid { get; set; }
        public string Sname { get; set; }
    }

    public class Salary
    {
        public int Sid { get; set; }
        public double Payment { get; set; }
    }

    public class StaffSalaryViewModel
    {
        public int Sid { get; set; }
        public string Sname { get; set; }


        public double PaymentSum { get; set; }
    }
}


[解决办法]
there is a simply way:

请问 c# linq  2个表查询的有关问题被楼主诱导了 不用join也行  

热点排行