Я хочу написать запрос, который написан с использованием linq и словаря данных. Я хочу преобразовать этот запрос в форму ado.net
var insData = new Dictionary<string, string>();
insData = db.Query<TableName>("select Name, Value from Table where PId={id} and type<>{(int)Enum.PElement}").ToDictionary(key => key.Name??t.TName, Val => Val.Value);
Это запрос, который я хочу преобразовать в форму ado.net для предоставления словаря с этим типом
ToDictionary (key => key.Name??t.TName, Val => Val.Value);
Я написал половину кода до заполнения набора данных.
но в дальнейшем я не совсем понимаю, как пойти дальше, чтобы преобразовать его в словарь со значением пары ключей, показанным выше.
Вот код, который я пробовал
var dictonary = new SqlCommand($"select Name, Value from Table where PId={id} and type<>{(int)Enum.PElement}", con);
SqlDataAdapter sda2 = new SqlDataAdapter(dictonary);
DataSet ds2 = new DataSet();
sda2.Fill(ds2);
IEnumerable<DataRow> dataRows = ds2.Tables[0].Rows.Cast<DataRow>().ToList();
var insData = new Dictionary<string, string>();
foreach (DataRow row2 in dataRows )
{
insData.ToDictionary(key => key.Name ?? t.TName, Val => Val.Value);
}
но я получаю ошибку как
Значение пары ключей не содержит определения Name и недоступно> метод расширения Name, принимающий первый аргумент типа KeyValuepair
Я хочу обработать этот запрос в ado.net так же, как он работает в linq, который я показал выше.