我在保存多对多关系时遇到问题。 当我运行代码时,我的映射表“dbo.UserTown”没有保存任何数据,为什么会这样?
我已经编写了我的功能,用于保存带有城镇列表的用户
public void Save(User user)
{
context.User.Add(user);
context.SaveChanges();
}
我的课程是这样的:
public class User
{
public long UserId { get; set; }
public String Nickname { get; set; }
[InverseProperty("Residents")]
public virtual ICollection<Town> Residencies { get; set; }
}
和
public class Town
{
public long TownId { get; set; }
public String Name { get; set; }
public virtual ICollection<User> Residents { get; set; }
}
答案 0 :(得分:0)
您需要有映射类
public class User
{
public long UserId { get; set; }
public String Nickname { get; set; }
public virtual ICollection<TownResidents> TownResidents { get; set; }
}
public class Town
{
public long TownId { get; set; }
public String Name { get; set; }
public virtual ICollection<TownResidents> TownResidents { get; set; }
}
public class TownResidents
{
public long TownId { get; set; }
public long UserId { get; set; }
public virtual Town { get; set; }
public virtual User { get; set; }
}
答案 1 :(得分:0)
您不必创建新实体来处理多对多关系。
首先删除[InverseProperty("Residents")]
。这是多余的。没有它,你的模型很好。
[InverseProperty("Entity")]
。
我猜您的问题在于如何将相关数据添加到实体中。我认为article会帮助你。
答案 2 :(得分:0)
Stange,但我发现第二天: 我已经采取措施来解决问题:
真正的头脑...