C# 当前上下文、ApiController、asp.net core和IEnumerable中不存在该名称
我正在创建一个返回列表IEnumerable的服务,问题是当返回元素IEnumerable时会出现以下错误:“ActivitiesList”名称在当前上下文中不存在 我与你分享我的代码,错误出现在最后一行:返回活动列表C# 当前上下文、ApiController、asp.net core和IEnumerable中不存在该名称,c#,asp.net-core,asp.net-core-webapi,C#,Asp.net Core,Asp.net Core Webapi,我正在创建一个返回列表IEnumerable的服务,问题是当返回元素IEnumerable时会出现以下错误:“ActivitiesList”名称在当前上下文中不存在 我与你分享我的代码,错误出现在最后一行:返回活动列表 [HttpPost] [路由(“用户/获取用户活动”)] 公共IEnumerable GetUserActivities() { 字符串email=User.FindFirstValue(ClaimTypes.email); 尝试 { 如果(!String.IsNullOrEmp
[HttpPost]
[路由(“用户/获取用户活动”)]
公共IEnumerable GetUserActivities()
{
字符串email=User.FindFirstValue(ClaimTypes.email);
尝试
{
如果(!String.IsNullOrEmpty(电子邮件))
{
使用(SecondAppContext db=new SecondAppContext())
{
使用(var transaccion=new TransactionScope())
{
User UserModel=db.User
.其中(b=>b.电子邮件==电子邮件)
.First();
var IdUser=UserModel.Id;
IEnumerable活动列表=
(
来自db.Activities中的活动
其中activity.IdUser==IdUser&&
activity.DateCreated>DateTime.Now.AddDays(-3)
选择新活动类
{
dataCreated=activity.DateCreated,
描述=活动。描述,
类别=活动。类别,
性别=活动。性别,
ageMin=(int)activity.ageMin,
ageMax=(int)activity.ageMax
}).ToList();
完全横渡;
}
}
}
}
捕获(例外情况除外)
{
错误(例如ToString());
}
返回活动列表;
}
User-userModel
public async Task<IEnumerable<ActivitiesClass>> GetUserActivities()
{
string email = User.FindFirstValue(ClaimTypes.Email);
if (string.IsNullOrEmpty(email))
return null; // you should think about this
try
{
await using var db = new SecondAppContext();
// what are yu going to if the user is not found?
var userModel = await db.User
.Where(b => b.Email == email)
.FirstOrDefaultAsync();
if (userModel == null)
return null; // you should think about this
return await (
from activity in db.Activities
where activity.IdUser == userModel.Id && activity.DateCreated > DateTime.Now.AddDays(-3)
select new ActivitiesClass
{
dataCreated = activity.DateCreated,
description = activity.Description,
category = activity.Category,
gender = activity.Gender,
ageMin = (int) activity.AgeMin,
ageMax = (int) activity.AgeMax
}).ToListAsync();
}
catch (Exception ex)
{
Error(ex.ToString());
}
return null; // you should think about this
}
公共异步任务GetUserActivities()
{
字符串email=User.FindFirstValue(ClaimTypes.email);
if(string.IsNullOrEmpty(电子邮件))
return null;//您应该考虑一下
尝试
{
使用var db=new SecondAppContext()等待;
//如果找不到用户,你打算怎么办?
var userModel=await db.User
.其中(b=>b.电子邮件==电子邮件)
.FirstOrDefaultAsync();
if(userModel==null)
return null;//您应该考虑一下
返回等待(
来自db.Activities中的活动
其中activity.IdUser==userModel.Id&&activity.DateCreated>DateTime.Now.AddDays(-3)
选择新活动类
{
dataCreated=activity.DateCreated,
描述=活动。描述,
类别=活动。类别,
性别=活动。性别,
ageMin=(int)activity.ageMin,
ageMax=(int)activity.ageMax
}).ToListAsync();
}
捕获(例外情况除外)
{
错误(例如ToString());
}
return null;//您应该考虑一下
}
当前上下文中不存在名称“ActivitiesList”
该问题涉及到您正在if
语句中定义ActivitiesList
,因此它将显示上述错误。此外,由于IEnumerable
是一个接口,我建议您可以定义一个List
实例来存储返回数据
请尝试按以下方式修改您的代码:
[HttpPost]
[Route("user/get-user-activities")]
public IEnumerable<ActivitiesClass> GetUserActivities()
{
string email = User.FindFirstValue(ClaimTypes.Email);
//define a List<ActivitiesClass> to store the return data.
List<ActivitiesClass> ActivitiesList = new List<ActivitiesClass>();
try
{
if (!String.IsNullOrEmpty(email))
{
using (SecondAppContext db = new SecondAppContext())
{
using (var transaccion = new TransactionScope())
{
User UserModel = db.User
.Where(b => b.Email == email)
.First();
var IdUser = UserModel.Id;
//set values for the ActivitiesList
ActivitiesList =
(
from activity in db.Activities
where activity.IdUser == IdUser &&
activity.DateCreated > DateTime.Now.AddDays(-3)
select new ActivitiesClass
{
dataCreated = activity.DateCreated,
description = activity.Description,
category = activity.Category,
gender = activity.Gender,
ageMin = (int)activity.AgeMin,
ageMax = (int)activity.AgeMax
}).ToList();
transaccion.Complete();
}
}
}
}
catch (Exception ex)
{
Error(ex.ToString());
}
return ActivitiesList; //Call the `.AsEnumerable()` method, if you want to convert the List to the IEnumerable<>.
}
[HttpPost]
[路由(“用户/获取用户活动”)]
公共IEnumerable GetUserActivities()
{
字符串email=User.FindFirstValue(ClaimTypes.email);
//定义一个列表来存储返回数据。
列表活动列表=新列表();
尝试
{
如果(!String.IsNullOrEmpty(电子邮件))
{
使用(SecondAppContext db=new SecondAppContext())
{
使用(var transaccion=new TransactionScope())
{
User UserModel=db.User
.其中(b=>b.电子邮件==电子邮件)
.First();
var IdUser=UserModel.Id;
//设置活动列表的值
活动列表=
(
来自db.Activities中的活动
其中activity.IdUser==IdUser&&
activity.DateCreated>DateTime.Now.AddDays(-3)
选择新活动类
{
dataCreated=activity.DateCreated,
描述=活动。描述,
类别=活动。类别,
性别=活动。性别,
ageMin=(int)activity.ageMin,
ageMax=(int)activity.ageMax
}).ToList();
完全横渡;
}
}
}
}
捕获(例外情况除外)
{
错误(例如ToString());
}
return ActivitiesList;//如果要将列表转换为IEnumerable,请调用“.AsEnumerable()”方法。
}
Af
[HttpPost]
[Route("user/get-user-activities")]
public IEnumerable<ActivitiesClass> GetUserActivities()
{
string email = User.FindFirstValue(ClaimTypes.Email);
//define a List<ActivitiesClass> to store the return data.
List<ActivitiesClass> ActivitiesList = new List<ActivitiesClass>();
try
{
if (!String.IsNullOrEmpty(email))
{
using (SecondAppContext db = new SecondAppContext())
{
using (var transaccion = new TransactionScope())
{
User UserModel = db.User
.Where(b => b.Email == email)
.First();
var IdUser = UserModel.Id;
//set values for the ActivitiesList
ActivitiesList =
(
from activity in db.Activities
where activity.IdUser == IdUser &&
activity.DateCreated > DateTime.Now.AddDays(-3)
select new ActivitiesClass
{
dataCreated = activity.DateCreated,
description = activity.Description,
category = activity.Category,
gender = activity.Gender,
ageMin = (int)activity.AgeMin,
ageMax = (int)activity.AgeMax
}).ToList();
transaccion.Complete();
}
}
}
}
catch (Exception ex)
{
Error(ex.ToString());
}
return ActivitiesList; //Call the `.AsEnumerable()` method, if you want to convert the List to the IEnumerable<>.
}