[已关闭问题] linq to sql的返回值类型
提问时间: 2008-03-07 15:13
悬赏分:20 提问时间2008/3/7 15:13:56 问题为何被关闭 浏览:403 次

我定义的实体类:

[Table(Name="xc")]
public class XC
{
    [Column(IsPrimaryKey=true)]
    public int xcid { get; set; }

    [Column(Name = "xcname")]
    public string xcname { get; set; }

    [Column(Name = "categoryid")]
    public int categoryid { get; set; }

    [Column(Name = "xclogourl")]
    public string xclogourl { get; set; }
}

然后用以下方法: 

IDbConnection conn = new SqlConnection("Data Source=hp;Initial Catalog=picturedata;User ID=sa");
        DataContext ctx = new DataContext(conn);
        Table<XC> xcx = ctx.GetTable<XC>();
        var xcs = from x in xcx
                  select new { x.xcname, x.xclogourl };
        return xcs;

请问返回的XCS是什么类型,如果要转成datatable怎样转?

我对泛型不太熟悉,请大家指教????

提问者:jasonoiu - 初学一级
(2)
该代码无法通过编译. 返回值的类型是 IEnumerable<某个匿名类型> 匿名类型无法作为函数返回值使用,只能在函数内部使用. 至于转DataTable,之所以使用ORM,就是为了强类型地使用数据,在这里如果把返回值转换成DataTable是绝对的倒退.真要这样的话,还不如不用Linq,直接用DbCommand来获取数据呢.
6个月前   回答者:deerchao - 大侠五级
楼上的说得非常有道理,如果你真的想返回,试试这样写: public class ReturnType { public ReturnType(string name, string logoUri) { // 此处省略若干字 } // 此处省略若干字 } public IEnumerable<ReturnType> GetPictures() { IDbConnection conn = new SqlConnection("Data Source=hp;Initial Catalog=picturedata;User ID=sa"); DataContext ctx = new DataContext(conn); Table<XC> xcx = ctx.GetTable<XC>(); IEnumerable<ReturnType> xcs = from x in xcx select new ReturnType(x.xcname, x.xclogourl); return xcs; } 至于Ajax,我就一点都不了解了。
6个月前   回答者:Colin Han - 老鸟四级
6个月前   jasonoiu :
因为我需要这个返回值能通过ASP.NET AJAX的pagemethod方法被客户端js代码调用并能处理,所以希望能转换成一个客户端能识别的类型!
6个月前   deerchao :
想用js处理的话,建议你去看一下与JSON有关的资料.
   您需要登录以后才能回答!
 

我要提问

我的问题


快到期问题

> 问题排行榜

相关链接