dav*_*v_i 5 c# linq linq-to-sql
我对LINQ to SQL有一个特殊的问题:
这样做很好:
from s in Something
join a in AnotherThing
on s.NullableDateTime.Value
equals a.DateTime
select s
Run Code Online (Sandbox Code Playgroud)
但是,使用匿名类型如下:
from s in Something
join a in AnotherThing
on new { s.NullableDateTime.Value }
equals new { a.DateTime }
select s
Run Code Online (Sandbox Code Playgroud)
结果是
join子句中某个表达式的类型不正确.调用"加入"时类型推断失败.
我需要使用匿名类型,因为我的目标是添加另一列来加入.
有关为什么会发生这种情况以及如何解决的任何想法?
Den*_*nis 12
您应该告诉编译器它必须比较哪些属性:
on new { s.NullableDateTime.Value }
equals new { Value = a.DateTime }
Run Code Online (Sandbox Code Playgroud)
第一个创建一个匿名类型,如下所示:
class A
{
public DateTime Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
示例中的第二行创建另一个匿名类型:
class B
{
public DateTime DateTime { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
因此,编译器无法理解,要比较a.Value同b.DateTime.
| 归档时间: |
|
| 查看次数: |
6486 次 |
| 最近记录: |