Я написал приложение, которое я использую в качестве агента для запроса данных из базы данных и автоматически загружаю его в свой распределенный сетевой кеш ,LINQ-to-SQL: ExecuteQuery (Type, String) заполняет одно поле, но не другое
Я делаю это, указав sql-запрос и тип конфигурации. Код, который фактически делает обработку запросов выглядит следующим образом:
List<Object> result = null;
try { result = dc.ExecuteQuery(elementType, entry.Command).OfType<Object>().ToList(); }
catch (Exception ex) { HandleException(ex, WebCacheAgentLogEvent.DatabaseExecutionError); continue; }
elementType
является System.Type создается из типа, указанный в конфигурации (с использованием Type.GetType()
) и entry.Command
является запросом SQL.
Конкретный тип объекта У меня проблема с выглядит следующим образом:
public class FooCount
{
[Column(Name = "foo_id")]
public Int32 FooId { get; set; }
[Column(Name = "count")]
public Int32 Count { get; set; }
}
Запрос SQL выглядит следующим образом:
select foo_id as foo_id, sum(count) as [count]
from foo_aggregates
group by foo_id
order by foo_id
По какой-то причине, когда запрос выполняется, свойство «Count» заполняется, но не свойство «FooId». Я попытался выполнить запрос сам, и вернутся имена столбцов, а имена столбцов совпадают с тем, что я указал в моих атрибутах сопоставления. Помогите!
@BFree - редактирование вопроса просто для изменения чужого стиля кодирования - просто грубо ИМХО. Пожалуйста, не надо. –
Мой плохой. Я не думал, что ты на самом деле хотел это сделать, я думал, что это был несчастный случай. – BFree
@ Daniel - код отправки, который заставляет людей прокручивать право читать, это отличный способ заставить их игнорировать ваш вопрос. Сдерживание людей, пытающихся помочь, еще лучше ... –