LINQ to SQL将结果分配给VB.net中的另一个对象
本文关键字:net 一个对象 VB SQL to 结果 分配 LINQ | 更新日期: 2023-09-27 18:11:24
我试图在选择语句中将vw_Source_Columns
的结果分配给vw_UI_List_Search_Columns
。如何在vb.net中做?
Partial Public Class vw_Source_Columns
Public Property Source As String
Public Property Field_Name As String
Public Property Field_Type As String
Public Property strSourceColumn As String
Public Property strSourceName As String
Public Property strDataViewName As String
Public Property intColumnID As Integer
Public Property intMaster As Integer
End Class
Public Class vw_UI_List_Search_Columns
Public Property Source As String
Public Property Field_Name As String
Public Property Field_Type As String
Public Property strSourceColumn As String
Public Property strSourceName As String
End Class
Dim query = From tblSources In writingEntities.vw_Source_Columns.AsNoTracking
query = query.Where(Function(tblSources) tblSources.strSourceName = tblName).OrderBy(Function(tblSources) tblSources.strSourceColumn)
'Dim lstfields As List(Of vw_UI_List_Source_Columns) = query.ToList()
'' assign query results of List (Of vw_UI_List_Source_Columns)
'' to List (Of vw_UI_List_Search_Columns) to suitable columns.
如何在vb.net中做到这一点?我曾经在c#中使用new
关键字来选择。
Dim lstfields As List(Of vw_UI_List_Search_Columns) = query.Select(Function(e) New vw_UI_List_Search_Columns With {.Source = e.Source, .Field_Name = e.Field_Name, etc...}).ToList()
您必须创建一个实例并手动设置如下属性:
Dim lstfields As List(Of vw_UI_List_Search_Columns)
lstfields = query.Select(Function(SourceItem) _
New vw_UI_List_Search_Columns() with _
{.Source = SourceItem.Source,
.Field_Name = SourceItem.Field_Name,
.Field_Type = SourceItem.Field_Type,
.strSourceColumn = SourceItem.strSourceColumn,
.strSourceName = SourceItem.strSourceName}).ToList()
如果您正在使用继承,那么vw_Source_Columns
类是vw_UI_List_Search_Columns
的继承人,您可以完全按照您所做的方式(只是添加Cast(Of vw_UI_List_Search_Columns)
,像这样:
Public Class vw_Source_Columns
Inherits vw_UI_List_Search_Columns
Public Property strDataViewName As String
Public Property intColumnID As Integer
Public Property intMaster As Integer
End Class
Public Class vw_UI_List_Search_Columns
Public Property Source As String
Public Property Field_Name As String
Public Property Field_Type As String
Public Property strSourceColumn As String
Public Property strSourceName As String
End Class
Dim query = From tblSources In writingEntities.vw_Source_Columns.AsNoTracking
query = query.Where(Function(tblSources) tblSources.strSourceName = tblName).OrderBy(Function(tblSources) tblSources.strSourceColumn)
Dim lstfields As List(Of vw_UI_List_Source_Columns) = query.Cast(Of vw_UI_List_Search_Columns).ToList()