У меня есть запрос EF, который возвращает анонимный тип нескольких объединенных таблиц. Я передаю это другой функции в качестве динамической. Есть ли способ передать динамику анонимному типу известного анонимного типа? Если есть способ сделать это, я бы предположил, что передача его как объекта лучше, чем динамика, это правильно?Кастинг объекта/Динамический для анонимного типа
...
var appts = (from a in dbc.tblAppt join b in dbc.tblApptTypes on a.Type equals b.Type select new {a, b}).ToList();
If (appts.Any())
ProcessAppts(appts);
}
void ProcessAppts(dynamic appts)
{
var AnonTypeAppts = appts as (new {tblAppt, tblApptTypes}); // This bit here
}
Хорошо, я подумал, что это будет единственное решение и просто пытается срезать углы. Кажется, что нет ответа нигде, вероятно, потому, что никто другой не настолько глуп, чтобы попробовать его. Благодарю. – sonnyJim
@sonnyJim Я склоняюсь к тому, что анонимные типы отлично подходят в контексте одного метода, но как только кто-то еще должен заботиться о них, найдите время, чтобы сделать новое определение класса. Но только FYI, учитывая «динамику», вам не нужно отбрасывать его. Вы просто утка-типа членов, чтобы добраться до них, 'dynamic', и DLR делает все остальное. Тем не менее, не делайте этого. –
@AdamHouldsworth Обычно, если я передавал объект более чем одному месту, я бы сделал правильный класс, однако это используется только двумя методами (одним перегруженным методом), поэтому я точно знаю, что происходит, код хорошо документирован чтобы было ясно, что это anon-тип с {a, b, c и т. д.} в нем (я также являюсь сольным разработчиком в данный момент, но это, вероятно, изменится в будущем). Я не делал ничего подобного раньше, и я думаю, что я, вероятно, неправильно его использую, учитывая, что и вы, и Патрик сказали, переписываете его, я сделаю это. Также я знаю, что утиная набивка, для этого нет никакой интеллигентности и т. Д. – sonnyJim