【问题标题】:Unable to join a table and view - type inference failed in the call to 'join'无法加入表和视图 - 调用“加入”时类型推断失败
【发布时间】:2014-03-07 03:28:05
【问题描述】:

我想将我的表格列EmployeeAccess.EmpNo 内部连接到我的视图列VIEW_HCM.EmpNo

public List<EmployeeAccess> EmployeeAccess4()
{
    var emp = from b in contxt.EmployeeAccesses
              join c in contxt.View_HCM on b.EmpNo equals c.EmpNo
              select new                     
              {
                  b.EmpNo,
                  c.EmailAddress
              };

}

join 出现错误:

此联合从句的其中一个表达式的类型不正确。调用“加入”时类型推断失败。

【问题讨论】:

  • 所有的 EmpNo 都是 smallint。
  • 不,不是。没有空值。
  • View_HCM 是什么类型的?

标签: c# mysql linq


【解决方案1】:

您的一个字段是Nullable。我不是说你有空值,只是 typenullable

.Value 添加到Nullable 字段以加入这些(我只是将其放在两者上,因为不查看您的DDL 我不知道它是哪一个):

 var emp = from b in contxt.EmployeeAccesses
              join c in contxt.View_HCM on b.EmpNo.Value equals c.EmpNo.Value
              select new                     
              {
                  b.EmpNo,
                  c.EmailAddress
              };

或者如果您有权访问更改列,请将列设置为 NOT NULL

【讨论】:

  • 感谢加入时不再出错。但是返回类型需要什么代码?
  • 您正在定义一个匿名对象,因此返回类型将只是 Object
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
  • 1970-01-01
  • 2013-01-23
相关资源
最近更新 更多