好的,我已经成功地完成了以下工作
public IQueryable getTicketInformation(int ticketID)
{
var ticketDetails = from tickets in _context.tickets
join file in _context.file_objects on tickets.ticket_id equals file.source_id
where tickets.ticket_id == ticketID
select new { tickets.ticket_id, tickets.title, tickets.care_of_email, file.filename };
return ticketDetails.AsQueryable();
}
我继续创建了自己的包含基元的类 (myObject)
Ticket_id、标题、care_of_email 和文件名。哪些是我在 linq 语句中返回的项目。
我将我的声明修改为
public IQueryable<myObject> getTicketInformation(int ticketID)
{
var ticketDetails = from tickets in _context.tickets
join file in _context.file_objects on tickets.ticket_id equals file.source_id
where tickets.ticket_id == ticketID
select new { tickets.ticket_id, tickets.title, tickets.care_of_email, file.filename };
return ticketDetails.AsQueryable()<myObject>;
}
认为这将使泛型类型安全,但我收到错误
“无法将方法组“AsQueryable”转换为非委托类型“System.Linq.IQueryable”。您打算调用该方法吗?
我想做的事情可能吗?
myObject 类是否需要实现 IEnumerable 或 IQueryable?
或者最好从 linq 结果集构造对象 MyObject,然后从函数返回对象 MyObject
public myObject getTicketInformation(int ticketID)
{
....linq statement....
myObject o = null;
foreach (obj in linqstatemt)
{
o = new myObject();
o.ticket_id = obj.ticket_id
.......
}
return o;
}