我想将内存中的实体与数据库表中的数据进行匹配,并返回一个新的内存中 DTO,其中包含匹配信息的子集。现在,匹配涉及两列,因此我正在动态构建一个新键。只要我在构建密钥之前执行查询,有效地使用Linq-To-Objects进行匹配,这就行得通。
当不立即执行查询时,我会收到此MSDN 文章所述的运行时异常。
这是我的代码和数据模型,经过简化。我有
- 房间(如
IEnumerable<Room>
,已经在内存中) - 区域(如
IEnumerable<Room>
,已在内存中) - 警报(来自数据库,来自上下文的 IQueryable)
警报与区域和位置标识相关联。房间可以有多个区域,并且有一个 LocationId。
我想建立一组发生在一组房间中的警报。这涉及将警报的区域和 LocationsId 与每个房间的 LocationId 和区域进行匹配。
from area in allAreas
let alarmKey = area.AreaName + area.Room.LocationId //AreaName is String, LocationId is integer
//....
但是,此行涉及一个不受支持的将 int 转换为 String 的形式。如何创建密钥?