我在接口内部创建方法,如下所示List<T> OngoingEvent();
我实现了存储库内部的方法
public List<T> OngoingEvent()
{
var output2 = DbContext.ParticipantsTable.Join(DbContext.EventTable, e => e.EventTableID, d => d.ID,
(tbl1, tbl2) => new
{
Table1 = tbl1,
Table2 = tbl2
}).Join(DbContext.VolunteerTable, ee => ee.Table1.VolunteerTableID, dd => dd.ID,
(tbl1, tbl2) => new
{
ID = tbl1.Table1.ID,
IsAccepted = tbl1.Table1.IsAccepted,
IsAttend = tbl1.Table1.IsAttend,
EventName = tbl1.Table2.EventName,
EventEndDate = tbl1.Table2.EventEndDate,
VolunteerName = tbl2.VolunteerName
}).ToList();
return output2;
}
但返回值为Error
严重性代码说明项目文件行隐藏状态错误CS 0029无法隐式转换类型“System.Collections.Generic.List〈〈anonymous type:int Id、接受布尔值、布尔值Attend、字符串EventName、字符串EventEndDate、字符串志愿者名称〉〉' to '系统.集合.通用.列表'
我尝试将List<T> OngoingEvent();
更改为IEnumerable OngoingEvent();'
和可查询的正在进行的事件();但不工作
我试着用这样的方法IQueryable OngoingEvent(表达式);但我不知道该怎么办
1条答案
按热度按时间agyaoht71#
该错误告诉您
output2
列表的返回类型是匿名对象,因为使用了:无法转换为
T
类型的列表。您可以通过将签名更改为以下任一项来快速解决问题:
或
但是,我会定义一个表示返回类型的类:
然后使用这个作为返回类型: