Simple way to return anonymous types (to make MVC using LINQ possible)

Posted by BlueRaja The Green Unicorn on Stack Overflow See other posts from Stack Overflow or by BlueRaja The Green Unicorn
Published on 2010-03-15T21:13:51Z Indexed on 2010/04/27 2:33 UTC
Read the original article Hit count: 510

Filed under:
|
|
|
|

I'd like to implement MVC while using LINQ (specifically, LINQ-to-entities). The way I would do this is have the Controller generate (or call something which generates) the result-set using LINQ, then return that to the View to display the data. The problem is, if I do:

return (from o in myTable select o);

All the columns are read from the database, even the ones (potentially dozens) I don't want. And - more importantly - I can't do something like this:

return (from o in myTable select new { o.column });

because there is no way to make anonymous types type-safe! I know for sure there is no nice, clean way of doing this in 3.5 (this is not clean...), but what about 4.0? Is there anything planned, or even proposed? Without something like duck-typing-for-LINQ, or type-safe anonymous return values (it seems to me the compiler should certainly be capable of that), it appears to be nearly impossible to cleanly separate the Controller from the View.

© Stack Overflow or respective owner

Related posts about c#

Related posts about LINQ