我定义的实体类:
[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怎样转?
我对泛型不太熟悉,请大家指教????
|
该代码无法通过编译.
返回值的类型是 IEnumerable<某个匿名类型>
匿名类型无法作为函数返回值使用,只能在函数内部使用.
至于转DataTable,之所以使用ORM,就是为了强类型地使用数据,在这里如果把返回值转换成DataTable是绝对的倒退.真要这样的话,还不如不用Linq,直接用DbCommand来获取数据呢. 楼上的说得非常有道理,如果你真的想返回,试试这样写: 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个月前 jasonoiu : 因为我需要这个返回值能通过ASP.NET AJAX的pagemethod方法被客户端js代码调用并能处理,所以希望能转换成一个客户端能识别的类型! |
|
6个月前 deerchao : 想用js处理的话,建议你去看一下与JSON有关的资料. |