我使用 ASP.NET 4.5 和 EF 6 组合了一个多级数据模型,如下所示:
Organization,它有一个 ICollection:
_____Workspaces,它有一个 ICollection:
__________Projects,它有一个 ICollection:
______________卡片
如果我有一个 Card Id,我如何找到它上面的 parent ?我什至不知道如何获得一级 parent 。要找到 Id 为 myCardId 的卡片的父级项目,我想编写如下内容:
var project = db.Projects.Where(p => p.Cards.Where(c => c.Id == myCardId));
有什么指导吗?您可以向我指出好的教程吗?
更新:这是我的项目模型:
public class Project
{
public int Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public DateTime Created { get; set; }
public virtual ICollection<Card> Cards { get; set; }
}
这是我的名片:
public class Card
{
public int Id { get; set; }
public string Title { get; set; }
public DateTime Created { get; set; }
public string Notes { get; set; }
}
当我查看数据库中的表时,Card 有一个 Project_Id 列,但这是 Entity Framework 所做的事情神奇地发生的 - 我相信。因为 Card 模型上没有 Parent 对象,所以我无法以编程方式请求诸如 Card.Project.Workspace.Organization 之类的东西...
我是不是把整个事情都设置反了?
最佳答案
希望您对每个表都有引用。
这样你就可以得到组织。
var organization = (from o in Organization
from w in Workspaces
from p in Projects
from c in Cards
where c.Id == myCardId && p.projectid == c.projectid && w.workspaceid == p.workspaceid && o.organizationid == w.organizationid select o).FirstOrDefault();
如果它与您的代码不同,请在此处发布您的集合结构,以便任何人都可以提供帮助。
关于c# - 在分层 SQL 数据库中查找所有父项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34604171/