当用静态值连接字段时,无效的匿名类型成员声明符

本文关键字:类型 成员 声明 无效 静态 连接 字段 | 更新日期: 2023-09-27 18:14:06

我有一个具有多个条件的连接子句,一个是静态值,但是我在编译时收到"无效匿名类型成员声明器"。

join t7 in db.Notes.DefaultIfEmpty() on new { t2.Lead_ID } equals new { t7.Item_ID, 5 = t7.Type_ID } into notes  

为清楚起见,我加入:

  • t2。Lead_ID ~ t7。Item_ID
  • t7。Type_ID到5(或一个变量)
谁能给我指个正确的方向?

当用静态值连接字段时,无效的匿名类型成员声明符

你做错了。从你的代码看来,你试图加入的对象有一个道具在一边,对象与2个道具在另一边(和5= t7.Item_ID)是一个错误本身。你应该试着这样写:

join t7 in db.Notes.DefaultIfEmpty() on t2.Lead_ID equals t7.Item_ID into notes
where t7.Item_ID == 5

您需要在equals的两侧有相同数量的参数,并且它们需要具有相同的名称。

join t7 in db.Notes.DefaultIfEmpty()
    on new { Item_ID = t2.Lead_ID, Type_ID = 5 } equals new { t7.Item_ID, t7.Type_ID }
    into notes

参见如何使用组合键连接(c#编程指南)

如果源序列中的属性没有相同的名称,则必须在键中分配新的名称。