C# 比较两个表之间的属性

C# 比较两个表之间的属性,c#,C#,我正试着做一些简单的事情,但由于某种原因,我有点纠结。我有两个表userTbl和productivityTbl通过userCode列连接 目标是遍历productivityTbl并在其中遍历userTbl以进入变量用户的职务代码(在用户表中有描述用户职务编号的UserPermission),然后对收到的职务编号执行操作 问题是,代码不知道如何将对象转换为表的类型。我试图预先确定对象将是表类型,但这也没有帮助 我相信我可能还没有探索过所有的方法,但我很想得到关于这个主题的指导 这是我的代码:(我删

我正试着做一些简单的事情,但由于某种原因,我有点纠结。我有两个表
userTbl
productivityTbl
通过
userCode
列连接

目标是遍历
productivityTbl
并在其中遍历
userTbl
以进入变量用户的职务代码(在用户表中有描述用户职务编号的
UserPermission
),然后对收到的职务编号执行操作

问题是,代码不知道如何将对象转换为表的类型。我试图预先确定对象将是表类型,但这也没有帮助

我相信我可能还没有探索过所有的方法,但我很想得到关于这个主题的指导

这是我的代码:(我删除了不相关的内容)

公共静态列表getTotalWorkPerMonth(int nextMonth)
{
使用(model2db=newmodel2())
{
DateTime today=DateTime.Now;
DateTime sixMonthsBack=今天.AddMonths(-6);
而(六个月后<今天)
{
foreach(db.ProductivityTbl.ToList()中的变量项)
{
如果(item.Date.Value.Month==sixMonthsBack.Month)
{
//我的问题是,当userRoll是var类型时,代码
//获得标题行,但他不让
//切换user.UserPermission中的me do,以及当userRoll
//类型为userTbl,则他需要进行转换
//从LINQ到userTbl,不获取标题行。
var userRoll=db.UserTbl.Where(u=>u.UserCode==item.UserCode);
开关(userRoll.UserPermission)
{
//一些代码
}
}
}    
}
}
}
我对它很陌生,我想这是新手的问题,我仍然很高兴你的帮助。
感谢您的参考,如果您确信下面的LINQ声明将为您提供独特的记录,请谅解:

var userRoll = db.UserTbl.Where(u => u.UserCode == item.UserCode);
那么你可能想试试这样的东西

var userRoll = db.UserTbl.Where(u => u.UserCode == item.UserCode).FirstOrDefault();
if (userRoll != null)
{
    switch (userRoll.UserPermission)
    {
        // some code
    }
}

UserPermission的类型是什么,是原始数据类型还是对象?看看模式匹配是否能帮助你找到你想要的东西。我不是想在这里粗鲁无礼。我只想让你在同事/老师等面前显得专业。如果你想要一个用户的角色,它的拼写是“角色”。面包卷是一种饼干或动作。此外,每当您.tolist一个数据集时,它就不再是一个数据表,您现在正在使用linq作为对象。你不能同时使用它们。嘿,我知道这并不完美,我还是个学生,正在慢慢学习如何用更干净更好的方式写作。谢谢你的评论,我注意到了。
var userRoll = db.UserTbl.Where(u => u.UserCode == item.UserCode).FirstOrDefault();
if (userRoll != null)
{
    switch (userRoll.UserPermission)
    {
        // some code
    }
}