Я пытаюсь избегать использования крупных объектов в моем текущем проекте, в то время как я хочу, чтобы загрузить коллекции данных для заполнения таблицы SQL SERVERпользовательских коллекции объектов для SqlDataReader
Я планирую SqlBulkCopy (альтернатива может быть также Sproc с параметром табличного значения, но это не сфера моего текущего вопроса)
как метод принимает либо DataTable
или SqlDataReader
мне было интересно, если я мог бы сделать что-то вроде:
public struct tblCarOb
{
public String Model;
public Int32 Year;
}
как я предпочитаю структуры над объектами класса, это может быть класс.
List<tblCarOb> tcoLst = new List<tblCarOb>(){ new tblCarObj(){ Model = "A", Year= 2010 }};
using (sqlConnection ...)
{
use Reader to read form tcoLst or tblCarOb[]
}
, чтобы я мог избежать использования более сложного DataTable
вопрос будет это могло быть сделано каким-то образом?
Update
public struct tblCarOb
{
public String Model;
public Int32 Year;
}
- идея проста получения какой-либо объект, созданный как код выше
- без использования
EntityFrameWork
- в моем случае мне не нужно сбросить/создать таблицу SQL Server
- в моем случае Объект таблицы C#, который я создаю, имеет соответствующую таблицу в SQL Server
- Я предпочитаю не использовать отражение, как я делаю с
DataTable
- ** добавление другого класса для реализации было бы неплохо, но не вся DLL со 100-килограммовыми линиями, так как идея состоит в том, чтобы свести к минимуму след.
Целью было минимизировать накладные расходы и производительность.
заранее спасибо
Да, это может быть сделано. Возможно, это дубликат http://stackoverflow.com/q/2258310/1048425, но недостаточно уверен, чтобы закрыть вопрос. Другой пример класса-оболочки, который предоставляет IEnumarable в качестве IDataReader, можно найти здесь: https://code.msdn.microsoft.com/ObjectDataReader-8476dd72, – GarethD