Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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# 两个不同类型变量上的LINQ联接_C#_Linq - Fatal编程技术网

C# 两个不同类型变量上的LINQ联接

C# 两个不同类型变量上的LINQ联接,c#,linq,C#,Linq,我正在将Progress4GL中的查询重新编写为LINQ中的IQueryAble语句,并希望在键上连接两个具有不同类型的表。在Progress4GL转换相当容易完成,但在linq/C中编写相同的查询时遇到困难 由于这是一个定制的构建查询引擎,某些功能(如ToString)尚未为Iqueryable转换实现,因此正在寻找一种不必实现即可解决此问题的方法 因为这是一个自定义引擎,支持数据格式的Linq。其中x=>x……OrderBy。。。这在某种程度上是行不通的。下面是我正在写的例子: var qu

我正在将Progress4GL中的查询重新编写为LINQ中的IQueryAble语句,并希望在键上连接两个具有不同类型的表。在Progress4GL转换相当容易完成,但在linq/C中编写相同的查询时遇到困难

由于这是一个定制的构建查询引擎,某些功能(如ToString)尚未为Iqueryable转换实现,因此正在寻找一种不必实现即可解决此问题的方法

因为这是一个自定义引擎,支持数据格式的Linq。其中x=>x……OrderBy。。。这在某种程度上是行不通的。下面是我正在写的例子:

var query = from invbinlotalloc in Query()
            join putline in QueryOver<Putline>()
            on invbinlotalloc.keyId equals putline.putlineId
            select invbinlotalloc;

var data = await ExecuteAsync(query, cancellationToken).ConfigureAwait(false);

您是否尝试在Linq查询中强制转换这些?i、 e.在stringinvbinlotalloc.keyId等于stringputline.putlineId?@CarloBos i ahve上,在invbinlotalloc.keyId等于string putline.putlineId上,它给我一个“无法将十进制转换为字符串”的错误,LINQ中的连接是相等连接;把两种不同类型的东西放在一起是没有意义的,因为海龟桌上的海龟永远不等于长颈鹿桌上的长颈鹿。在你的案例中,这两种类型是什么?你如何定义它们是相等的?@EricLippert,你没有抓住问题的重点。我正在寻找一种方法将这两个字符串都转换为字符串,以便它们可以相等。Cornel,实际上,转换需要按如下方式进行:在invbinlotalloc.keyId?上。ToString等于putline.putlineId?ToString您是否尝试在Linq查询中转换这些字符串?i、 e.在stringinvbinlotalloc.keyId等于stringputline.putlineId?@CarloBos i ahve上,在invbinlotalloc.keyId等于string putline.putlineId上,它给我一个“无法将十进制转换为字符串”的错误,LINQ中的连接是相等连接;把两种不同类型的东西放在一起是没有意义的,因为海龟桌上的海龟永远不等于长颈鹿桌上的长颈鹿。在你的案例中,这两种类型是什么?你如何定义它们是相等的?@EricLippert,你没有抓住问题的重点。我正在寻找一种方法将这两个字符串都转换为字符串,以便它们可以相等。Cornel,实际上转换需要按如下方式进行:在invbinlotalloc.keyId?上。ToString等于putline.putlineId?上。ToString