我从return to list
得到了问题 - entity framework
。我需要作为一个对象返回。这是我的代码:
Public Function GetHardwareDetail() As List(Of HardwareDetailApp)
Dim idList As New List(Of String)
Dim Data = (From p In DB.TT_HARDWARE Select New HardwareDetailApp With {.InternalNum = p.INTERNAL_NUM, .Description = p.DESCRIPTION, .TerminalModel = p.HARDWARE_MODEL, .HardwareInternalNum = p.HARDWARE_ID, .Status = p.ISACTIVE, .Firmware = Nothing, .SerialNum = Nothing})
If Data.Count > 0 Then
For Each row In Data
idList.Add(row.InternalNum)
Next
End If
Dim Data2 = (From p In DB.TT_TERMINAL_HARDWARE Where idList.Contains(p.HARDWARE_INTERNAL_NUM)
Select New HardwareDetailApp With
{.Firmware = p.HARDWARE_FIRMWARE, .SerialNum = p.HARDWARE_SERIAL_NUM, .InternalNum = Data.FirstOrDefault.InternalNum, .Description = Data.FirstOrDefault.Description, .TerminalModel = Data.FirstOrDefault.TerminalModel, .HardwareInternalNum = Data.FirstOrDefault.HardwareInternalNum, .Status = Data.FirstOrDefault.Status})
Return Data2.ToList
End Function
这是我得到的错误:
“HardwareDetailApp”类型显示为两个 单个LINQ中的结构不兼容的初始化 实体查询。一个类型可以在同一个地方初始化 查询,但仅当在两个地方都设置了相同的属性时 这些属性的设置顺序相同。
答案 0 :(得分:0)
在您的代码中,您已在两个位置从HardwareDetailApp
创建,在每次创建时,您必须使用相同的顺序设置相同的属性。
例如,如果在linq to entity
Select
中,您可以使用以下内容:
Place1:
...
Select new MyClass()
{
PropA: 1,
}
...
并且在该查询中,您需要来自Select
的其他MyClass
,但需要其他一些属性,例如PropB
,赞:
Place2:
...
Select new MyClass()
{
PropB: 2,
}
...
您必须将Select
中的所有MyClass
更改为相同的内容,并将您不需要的属性设置为默认值,并按相同的顺序设置属性,如:
Place1:
...
Select new MyClass()
{
PropA: 1,
PropB: default(int),
}
...
和
Place2:
...
Select new MyClass()
{
PropA: default(int),
PropB: 2,
}
...
我的代码在c#
..
在代码的这一部分中Dim Data = (From p In DB.TT_HARDW ....
尝试首先设置Firmware and SerialNum
,就像第二个select
一样,(我没有仔细检查其他属性)