在C#中返回匿名类型的集合

And*_*ans 2 c# collections anonymous

我有一个VS2010解决方案,包括两个项目 - 一个"数据"项目和一个消耗数据项目的web服务项目.为了防止暴露数据库的模式,我选择将匿名(var)对象返回给webservice的使用者.我的问题是,我返回的一些内容将在收藏中.因此,而不是使用此代码返回单个匿名对象:

var item = from w in db.Widgets
    where w.widget_id == 1
    select new {
        name = w.name, 
        address = w.address
    };
Run Code Online (Sandbox Code Playgroud)

我想使用类似的东西来返回一个集合.

IQueryable<var> item = (from w in db.Widgets
        where w.widget_id == 1
        select new {
            name = w.name, 
            address = w.address
        }).IQueryable;
Run Code Online (Sandbox Code Playgroud)

我意识到这不是确切的方法......只需要知道它将如何实现.

谢谢!

Ada*_*son 5

匿名类型本身不能在其声明函数之外公开,因此在声明函数之外公开匿名类型实例的唯一方法是object.如果需要这样做,则必须使用所需的属性在更高的范围内声明类型,然后在查询中而不是匿名类型中对其进行水合.