gpt4 book ai didi

.net - Linq 2 实体 : Performing a join on two columns with different types

转载 作者:行者123 更新时间:2023-12-01 04:21:53 24 4
gpt4 key购买 nike

我目前正在使用 Entity Framework ,我想在两列上执行一个带有连接的 Linq 查询,一个是“String”类型,另一个是“Int32”类型。

类似的东西

from FirstEntity obj in context.FirstEntity 
join SecondEntity obj2 in context.SecondEntity on obj.SecondEntityId equals obj2.Id.ToString()

obj.SecondEntityId 作为 String 和 obj2.Id 作为 Int32

不幸的是,EF 不支持 ToString 操作。我遇到了这个错误(或一些类似的错误,如果我想将字符串转换为 Int32):

LINQ to Entities 无法识别方法“System.String ToString()”方法

直到现在,我还没有找到解决办法。

感谢您的帮助。

最佳答案

我们通常将这样的事情分成 2 个查询(linq to entity 支持中缺少 ToString() 使我想伤害 child )。

var query1 = (from SecondEntity obj2 in context.SecondEntity
select obj2.ID).ToList();

// now we're using linq to objects which does support ToString()
query1 = query1.Select(x => x.ToString());

// mixing linq to entities and linq to objects
var query2 = from FirstEntity obj in context.FirstEneity
join SecondEntity obj2 in query1 on obj.SecondEntityId equals obj2.ID

我在没有 VS 的情况下这样做,所以一些语法可能是错误的,这不是一个特别好的解决方案,但 EF 是 V1。

关于.net - Linq 2 实体 : Performing a join on two columns with different types,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1245882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com