Я пытаюсь создать экземпляр класса из моего результата запроса Linq. Поскольку я должен делать это для многих классов, я пытаюсь найти наиболее подходящий ярлык. Мне интересно, могу ли я сделать «выбор» части запроса короче.Создание экземпляра класса из результата запроса Linq
Мой класс:
public class current_control_id_class
{
public string asset_class { get; set; }
public string region_code { get; set; }
public string instance_code { get; set; }
public int sdi_control_id { get; set; }
public int rows_loaded { get; set; }
}
Моя функция Назначение:
foreach (var results in query)
{
foreach (PropertyInfo result in results.GetType().GetProperties())
{
string name = result.Name;
foreach (PropertyInfo info in used.GetType().GetProperties())
{
if (result.Name == info.Name)
{
Console.WriteLine("Result {0} matches class {1} and the value is {2}", result.Name, info.Name, result.GetValue(results,null));
}
}
}
}
Мой запрос (я знаю, что это работает)
current_control_id_class used = new current_control_id_class();
var query =
from result in t_sdi_current_control_id.AsQueryable()
where result.asset_class == asset_class
&& result.region_code == region
&& result.instance_code == site
select new current_control_id_class() {
rows_loaded = result.rows_loaded,
sdi_control_id = result.sdi_control_id,
asset_class = result.asset_class,
hsbc_region_code = result.hsbc_region_code,
hsbc_instance_code = result.hsbc_instance_code
};
Похоже, что вы можете использовать [AutoMapper] (http://automapper.org/). –
Является ли t_sdi_current_control_id коллекцией/массивом current_control_id_class? Или имена свойств всегда совпадают между запросом и классом, который вы пытаетесь создать? –