Конечно. Ничто в структуре не поддерживает это, как бы то ни было. Вам нужно будет выполнить поиск по тегам, а затем использовать отражение для доступа к соответствующим свойствам в вашем объекте Order.
Другой, более простой способ (без размышлений) - сбросить ваш ордер в хеш-таблицу ... Вот некоторый псевдокод, который на самом деле может работать как есть:
var hashy =
(from o in Orders where o.Id = id select
new Dictionary<string,object>{ {"Id", o.Id},
{"Name",o.Name}, /*yadda*/}).Single();
На данный момент все, что вам нужно сделать, это получить строку из вашего текстового файла и индексировать ее в хеш.
Очевидно, что Linq to Sql не любит инициализаторы списка в запросах. Вы можете обернуть это в вызов метода; Я не уверен.
Небольшая модификация, и вы получите эту рабочую версию:
var hashy =
(from o in Orders where o.Id = id select o).ToArray()
.Select(o=> new Dictionary<string,object>{{"Name",o.Name}})
.First()
Это не так элегантно, потому что вы отключаете вызов Linq через ToArray (), который отзовет все ордера. В конце концов, вероятно, лучше всего вытащить ваш заказ, поместить необходимую информацию в хеш, а затем обработать ваш текстовый файл. Вам придется перекомпилировать, если ваша база данных изменится; опять же, это не так элегантно, как моя первая попытка ...