C# ASP.NET REST API返回数组
我一般不熟悉asp.net和c#,正在构建RESTAPI。我主要在那里学习了很多教程,包括 这帮了大忙 我正在努力的一个领域是返回一组外键控对象 我有一个id为的对象,例如活动和各种其他数据。我还有另一个对象,例如ImageReference,它也有一个id,还有一个activityID的外键。活动可以有许多与ImageReference相关的对象 对于RESTAPI,在获取该活动后,我希望返回所有相关的(外键)ImageReference。我已经找到了如何返回单个相关对象:C# ASP.NET REST API返回数组,c#,.net,rest,C#,.net,Rest,我一般不熟悉asp.net和c#,正在构建RESTAPI。我主要在那里学习了很多教程,包括 这帮了大忙 我正在努力的一个领域是返回一组外键控对象 我有一个id为的对象,例如活动和各种其他数据。我还有另一个对象,例如ImageReference,它也有一个id,还有一个activityID的外键。活动可以有许多与ImageReference相关的对象 对于RESTAPI,在获取该活动后,我希望返回所有相关的(外键)ImageReference。我已经找到了如何返回单个相关对象: [Rout
[Route("~/api/locations/{zip}/activities")]
public IQueryable<ActivityDto> GetActivitiesByZip(int zip)
{
return db.Activities.Include(b => b.Location)
.Where(b => b.Location.Zip == zip)
.Select(AsActivityDto);
}
[Route(“~/api/locations/{zip}/activities”)]
公共IQueryable GetActivitiesByZip(int-zip)
{
返回db.Activities.Include(b=>b.Location)
.Where(b=>b.Location.Zip==Zip)
.选择(AsActivityDto);
}
及
[路由(“{id:int}”)]
[ResponseType(类型of(ActivityDto))]
公共异步任务GetActivity(int id)
{
ActivityDto activity=await db.Activities.Include(b=>b.Location)
.其中(b=>b.Id==Id)
.选择(AsActivityDto)
.FirstOrDefaultAsync();
如果(活动==null)
{
返回NotFound();
}
返回Ok(活动);
}
但是,我不知道如何返回多个相关对象。我正在寻找返回类似于:
<ActivityDto>
<Id>3</Id>
<Name>Activity Name</Name>
<Zip>80204</Zip>
<ImageReference>
<Id>1</Id>
<ImageURL>
https://example.net/images/f869ce1c8414a264bb11e14a2c8850ed
</ImageURL>
<Id>2</Id>
<ImageURL>
https://example.net/images/kC9gANXxMIi8fWj1BbY2ntZ9SaLo3
</ImageURL>
</ImageReference>
</ActivityDto>
3.
活动名称
80204
1.
https://example.net/images/f869ce1c8414a264bb11e14a2c8850ed
2.
https://example.net/images/kC9gANXxMIi8fWj1BbY2ntZ9SaLo3
我真诚地感谢你的帮助 我想您正在寻找这个,您可以链接包含的内容
[Route("{id:int}")]
[ResponseType(typeof(ActivityDto))]
public async Task<IHttpActionResult> GetActivity(int id)
{
ActivityDto activity = await db.Activities.Include(b => b.Location)
.Include(act => act.ImageReferences)
.Include(act => act.Location.ObjectInLocation)
.Where(b => b.Id == id)
.Select(AsActivityDto)
.FirstOrDefaultAsync();
if (activity == null)
{
return NotFound();
}
return Ok(activity);
}
[路由(“{id:int}”)]
[ResponseType(类型of(ActivityDto))]
公共异步任务GetActivity(int id)
{
ActivityDto activity=await db.Activities.Include(b=>b.Location)
.Include(act=>act.ImageReferences)
.Include(act=>act.Location.ObjectInLocation)
.其中(b=>b.Id==Id)
.选择(AsActivityDto)
.FirstOrDefaultAsync();
如果(活动==null)
{
返回NotFound();
}
返回Ok(活动);
}
这是与这些类有关的
public class Location
{
public X ObjectInLocation{get;set;}
}
public ImageReference
{
public int Id{get;set;}
public string ImageUrl{get;set;}
}
public class Activity
{
public Location Location{get;set;}
public IEnumerable<ImageReference> ImageReferences{get;set;}
}
公共类位置
{
公共X对象位置{get;set;}
}
公共图像参考
{
公共int Id{get;set;}
公共字符串ImageUrl{get;set;}
}
公共课堂活动
{
公共位置位置{get;set;}
公共IEnumerable ImageReferences{get;set;}
}
调用这些端点时会发生什么?你得到了什么回应?你希望得到什么?@scheien刚刚编辑以添加更多上下文-谢谢!它现在返回什么?@scheien只是活动,3活动名称80204我希望它包括相关的ImageReferences,而不仅仅是activity@BobInternet检查我的答案
public class Location
{
public X ObjectInLocation{get;set;}
}
public ImageReference
{
public int Id{get;set;}
public string ImageUrl{get;set;}
}
public class Activity
{
public Location Location{get;set;}
public IEnumerable<ImageReference> ImageReferences{get;set;}
}