C# ASP.NET MVC核心中EF映射类的列表返回视图
我将ASP.NET MVC Core与EF 1.1.0和LocalDB一起使用,并尝试搜索博客id(从url GET获得),然后发送以查看博客的帖子列表 大部分代码取自microsoft文档示例 数据库上下文:C# ASP.NET MVC核心中EF映射类的列表返回视图,c#,asp.net-mvc,entity-framework,asp.net-core,asp.net-core-mvc,C#,Asp.net Mvc,Entity Framework,Asp.net Core,Asp.net Core Mvc,我将ASP.NET MVC Core与EF 1.1.0和LocalDB一起使用,并尝试搜索博客id(从url GET获得),然后发送以查看博客的帖子列表 大部分代码取自microsoft文档示例 数据库上下文: public class BloggingContext : DbContext { public BloggingContext(DbContextOptions<BloggingContext> options) : base(options)
public class BloggingContext : DbContext
{
public BloggingContext(DbContextOptions<BloggingContext> options)
: base(options)
{ }
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public List<Post> Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
公共类BloggingContext:DbContext
{
公共博客上下文(DbContextOptions)
:基本(选项)
{ }
公共数据库集博客{get;set;}
公共DbSet Posts{get;set;}
}
公共类博客
{
public int BlogId{get;set;}
公共字符串Url{get;set;}
公共列表发布{get;set;}
}
公营职位
{
公共int PostId{get;set;}
公共字符串标题{get;set;}
公共字符串内容{get;set;}
public int BlogId{get;set;}
公共博客Blog{get;set;}
}
控制器:
public class BlogsController : Controller
{
private readonly BloggingContext _context;
public BlogsController(BloggingContext context)
{
_context = context;
}
// GET: Blogs/Details/5
public async Task<IActionResult> Details(int? id)
{
if (id == null)
{
return NotFound();
}
var blog = await _context.Blogs
.SingleOrDefaultAsync(m => m.BlogId == id);
if (blog == null)
{
return NotFound();
}
return View(blog.Posts); // HERE IS PROBABLY THE PROBLEM
}
}
public类BlogsController:Controller
{
私有只读BloggingContext_context;
公共博客控制器(博客上下文)
{
_上下文=上下文;
}
//获取:Blogs/Details/5
公共异步任务详细信息(int?id)
{
if(id==null)
{
返回NotFound();
}
var blog=await\u context.Blogs
.SingleOrDefaultAsync(m=>m.BlogId==id);
如果(blog==null)
{
返回NotFound();
}
return View(blog.Posts);//这可能是问题所在
}
}
视图:
@model IEnumerable
细节
@foreach(模型中的var项目){
@项目.标题
}
我得到一张空桌子。。有人能帮忙吗
谢谢。您需要使用Include来确保您的查询能够为博客获取相关帖子
var blog = await _context.Blogs
.SingleOrDefaultAsync(m => m.BlogId == id);
必须改为
var blog = await _context.Blogs.Include("Posts")
.SingleOrDefaultAsync(m => m.BlogId == id);
您需要使用Include来确保您的查询能够为博客获取相关帖子
var blog = await _context.Blogs
.SingleOrDefaultAsync(m => m.BlogId == id);
必须改为
var blog = await _context.Blogs.Include("Posts")
.SingleOrDefaultAsync(m => m.BlogId == id);
谢谢这很有效。包含(“帖子”)部分必须在博客之后,而不是结尾。通常正确,但是
包含
应该在之前。SingleOrDefault
。谢谢!这很有效。Include(“Posts”)部分必须在blog之后,而不是结尾。通常正确,但Include
应该在之前。SingleOrDefault
。