簡體   English   中英

EF 6.0 多對多關系在 codefirst 中不起作用

[英]EF 6.0 Many to many relationship is not working in codefirst

我在數據庫中有以下結構:

對於上述內容,我在 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'。"}

我的代碼有什么問題?

您在數據庫中沒有PersonTask表,因此在數據庫中找不到實體。 您必須創建映射表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM