如何在ASP.NET Core 3.1 API中显示指定的列数据
这是我的代码:如何在ASP.NET Core 3.1 API中显示指定的列数据,asp.net,asp.net-core,asp.net-web-api,Asp.net,Asp.net Core,Asp.net Web Api,这是我的代码: public string LoadAllWeeks(int course_id) { var dbSnapShot = db.CourseWeeks .Include(cw=>cw.WeekQuestions) .ThenInclude(cq => cq.Qn) .ThenInclude(q => q.Answers)
public string LoadAllWeeks(int course_id)
{
var dbSnapShot = db.CourseWeeks
.Include(cw=>cw.WeekQuestions)
.ThenInclude(cq => cq.Qn)
.ThenInclude(q => q.Answers)
.Where(c => c.CourseId == course_id);
var serializedItem = JsonConvert.SerializeObject(dbSnapShot, Formatting.Indented,
new JsonSerializerSettings
{
PreserveReferencesHandling = PreserveReferencesHandling.Objects,
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
});
return serializedItem;
}
这段代码返回每个表的完整数据,但我希望它只返回每个表的第2列数据。我该怎么做?
这些是我得到的json图像。1。您可以创建包含指定列的视图模型:
var dbSnapShot = _context.People.Include(a => a.Cats).Where(a => a.id == 1)
.Select(a => new ViewModel
{
peepleName = a.peepleName,
catName = a.Cats.Select(a=>a.catName).ToList()
});
模型(只是一个示例):
显示指定的列:
var dbSnapShot = _context.People.Include(a => a.Cats).Where(a => a.id == 1)
.Select(a => new ViewModel
{
peepleName = a.peepleName,
catName = a.Cats.Select(a=>a.catName).ToList()
});
2.您也可以使用匿名类型,如下所示:
var dbSnapShot = _context.People.Include(a => a.Cats).Where(a => a.id == 1)
.Select(a => new
{
Name =a.peepleName,
CName = a.Cats.Select(a=>a.catName)
});
您可以创建包含指定列的视图模型。或者您可以使用匿名类。请共享您的模型以及要显示的列。我们使用反向工程方法创建了Asp.NET Core 3.1项目,我们只是在sql server和dbcontext中创建了表,所有模型都是由EF Core自动创建的。因此,我们可以在此创建UserViewModel。我在下面提供了两种简单的方法。您不共享您的模型,所以我只提供一个简单的演示。不客气!)
var dbSnapShot = _context.People.Include(a => a.Cats).Where(a => a.id == 1)
.Select(a => new
{
Name =a.peepleName,
CName = a.Cats.Select(a=>a.catName)
});