从数据库(由MVC通过虚拟集合创建)中获取对象的父id

本文关键字:获取 取对象 id 创建 集合 数据库 MVC 虚拟 | 更新日期: 2023-09-27 18:13:05

我的数据库由EF-CodeFirst生成。我有3个模型,包含板,线程和帖子。我没有手动跟踪所有的parent_id值,而是用一些iccollections创建了它们,这样EF就为我做了这件事。

然而,当我在线程/视图/5页,我希望能够获取其父板Id,但我不知道如何。列确实存在于数据库中,因为所有EF所做的是创建一个Board_Id字段,并在我创建线程并将其添加到数据库时填充它。线程ICollection。

下面是我的代码:

// Board model, containing a title and a collection of threads
public class Board
{
    public int Id { get; set; }
    public string Title { get; set; }
    public virtual ICollection<Thread> Threads { get; set; }
}
// Thread model, containing a title and a collection of posts
public class Thread
{
    public int Id { get; set; }
    public string Title { get; set; }
    public virtual ICollection<Post> Posts { get; set; }
}

现在,当我在线程/视图操作,我如何去获取从列Board_Id的值?

// GET: Threads/View/5
[AllowAnonymous]
public ActionResult View(int? id) {
    Thread thread = db.Threads.Find(id);
    // Fetch the parent board Id
    int boardId = ...;
    return View(thread);
}

从数据库(由MVC通过虚拟集合创建)中获取对象的父id

你需要一个Board属性在你的Thread类中。属性将是

public virtual Board Board {get; set;}

有了这个属性,你就可以从Thread导航到Board