Несомненно. Тем не менее, ничто в рамках этого не поддерживает. Вам нужно будет выполнить поиск тегов, а затем использовать отражение для доступа к соответствующим свойствам в объекте Order.
Другой, более простой способ (без отражения) не будет сбрасывать ваш заказ в Hashtable ... Вот некоторые псевдокод, которые могли бы реально работать как:
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(), который будет тянуть обратно все заказы. В конце концов, вероятно, лучше всего просто вытащить свой заказ, заполнить необходимую информацию в хеше, а затем обработать ваш текстовый файл. Вам придется перекомпилировать, если ваша база данных изменится; опять же, это не так изящно, как моя первая попытка ...
Klinger похоже, что он отлично подойдет. Как я могу изменить это, чтобы иметь только один заказ - вместо списка Я просто перебираю одну запись (это приложение, а не заказ), поэтому мне нужен только один. –
2009-03-25 19:15:03
Сэм, я отредактировал ответ, но я не уверен, что это то, о чем вы просите. – Klinger