我在数据库中具有以下结构:
对于上述内容,我在EF 6.0 CodeFirst的C#代码中具有以下内容。
[Table("Person")]
public class User
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long Id { get; set; }
[Column("FullName")]
[MaxLength(200)]
public string Name { get; set; }
public virtual ICollection<Task> Tasks { get; set; } = new HashSet<Task>();
}
[Table("Task")]
public class Task
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long Id { get; set; }
[Column("FullName")]
[MaxLength(200)]
public string Title { get; set; }
public virtual ICollection<User> Users { get; set; } = new HashSet<User>();
}
问题是该集合根本没有被填充,并且总是返回为空。例如,如果我尝试:
userRepository.All.Include(x=>x.Tasks).Where(x=> x.FullName == "John").Select(x=> x.Tasks.Title).ToList();
InnerException = {“无效的对象名称'dbo.PersonTask'。”}
我的代码有什么问题?
答案 0 :(得分:0)
您的数据库中没有PersonTask
表,因此在数据库中找不到任何实体。您必须创建映射表。