【发布时间】:2014-02-06 19:46:17
【问题描述】:
我有一个简单的模型,当我在调试器中运行网站时,实体框架没有正确填充模型。
模型很简单:
public class Team
{
/// <summary>
/// Constructor required for the EntityFramework to create the object.
/// </summary>
private Team()
{
}
public Team(string name, ApplicationUser owner)
{
Name = name;
Owner = owner;
}
[Required]
public int Id { get; private set; }
[Required]
public string Name { get; private set; }
[Required]
public ApplicationUser Owner { get; private set; }
[Required]
public List<TeamMembership> Members { get; set; }
}
public class TeamMembership
{
/// <summary>
/// Constructor for the EntityFramework
/// </summary>
private TeamMembership()
{
}
public TeamMembership(ApplicationUser user, MembershipStatus status)
{
User = user;
Status = status;
}
[Required]
public ApplicationUser User { get; private set; }
[Required]
public MembershipStatus Status { get; set; }
[Required]
public int Id { get; private set; }
}
其中ApplicationUser 是由 ASP MVC 5 成员基础结构生成的默认类。
当我运行我的测试 (Specflow),它为每个测试创建一个具有唯一 ID 的新 LocalDb 数据库并在该数据库上运行迁移时,实体框架会正确填充我的团队和所有者。
但是,当我运行网站并尝试与应用程序交互时,我的团队并没有完全填充,因为所有者是 null 并且 Members 没有填充。但是所有者 ID 在数据库中设置正确,并且查询似乎没问题。测试期间执行的查询和应用程序的运行看起来是一样的。
为什么会这样?我该如何开始调试问题?
我觉得我错过了一些简单的东西。
【问题讨论】:
标签: entity-framework entity-framework-6