Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 林克选择w。Join语句-语法错误_C#_Mysql_Linq_Visual Studio 2010 - Fatal编程技术网

C# 林克选择w。Join语句-语法错误

C# 林克选择w。Join语句-语法错误,c#,mysql,linq,visual-studio-2010,C#,Mysql,Linq,Visual Studio 2010,我有两张桌子:- 签入和签入类型。连接两个表的键是TypeOfVisitKey 第二个表中的值是固定的,仅用于存储访问类型的定义 我正在尝试执行linq select+Join,在这里我可以获得所有结果并创建一个匿名类型列表,我可以绑定到网格(根据匿名类型中的字段名自动生成列名) CheckInSystemDataContext objDataContext=new CheckInSystemDataContext(); var checkinList=来自objDataContext.GetT

我有两张桌子:-

签入和签入类型。连接两个表的键是TypeOfVisitKey

第二个表中的值是固定的,仅用于存储访问类型的定义

我正在尝试执行linq select+Join,在这里我可以获得所有结果并创建一个匿名类型列表,我可以绑定到网格(根据匿名类型中的字段名自动生成列名)

CheckInSystemDataContext objDataContext=new CheckInSystemDataContext();
var checkinList=来自objDataContext.GetTable()中的c
在objDataContext.GetTable()中加入v
在c.TypeOfVisitKey上等于v.TypeOfVisitKey
选择new{variabl1=c.column1,variable2=v.column2};
我还尝试了另一种方法:-

 CheckInSystemDataContext ctx = new CheckInSystemDataContext();

 Table<Checkin> chk = ctx.GetTable<Checkin>();
 Table<TypeOfVisit> visit = ctx.GetTable<TypeOfVisit>();

 var chkList = from c in chk
               join v in visit on c.TypeOfVisitKey equals v.TypeOfVisitKey
               select new
                  {
                     TypeOfVisitDesc
                  };
CheckInSystemDataContext ctx=new CheckInSystemDataContext();
表chk=ctx.GetTable();
Table visit=ctx.GetTable();
var chkList=来自chk中的c
在c.TypeOfVisitKey上加入v.TypeOfVisitKey等于v.TypeOfVisitKey
选择新的
{
访问类型ESC
};

但是我的语法不正确。。。我以前做过这件事,但似乎语法不对。。。。有人能帮忙吗?谢谢

join语句前面的变量名“chk”上到底报告了什么语法错误。它说join not found…找不到源类型的查询模式的实现…您的chk需要是可枚举类型您使用的ORM是什么。如果使用EF,那么就不要说Table chk=ctx.GetTable();试着说var chk=dbContext.Checkins,ToList()和类似的visit,它会起作用。只需强调一点,“chk中的c”是所谓的“查询语法”,而chk.Select(..)是“方法语法”,它们在语义上是相同的。请阅读本主题,因为它可能会阐明为什么需要枚举类型。为了让您开始,我建议使用Repository模式来封装和抽象数据访问
 CheckInSystemDataContext ctx = new CheckInSystemDataContext();

 Table<Checkin> chk = ctx.GetTable<Checkin>();
 Table<TypeOfVisit> visit = ctx.GetTable<TypeOfVisit>();

 var chkList = from c in chk
               join v in visit on c.TypeOfVisitKey equals v.TypeOfVisitKey
               select new
                  {
                     TypeOfVisitDesc
                  };