我已经生成了一个类似于以下内容的edm文件:
如何将其转换为多对多的edm?我将使用POCO,所以我希望它看起来像:
public class User{
public List<Role> Roles {get; set;}
/* Other prop here */
}
public class Role{
public List<User> Users {get; set;}
/* Other prop here */
}
使用EF4。
答案 0 :(得分:1)
您可能/可能不知道的事情 - 如果您从 UserRole 表中删除 UserRoleId 字段,则EF根本不需要映射该连接表,并且它将为您创建多对多关联,并在幕后对连接表执行“静默连接”。
话虽如此,如果你必须拥有额外的字段,那么你可以这样做:
var userWithRoles = ctx.Users.Include("UserRoles.Role");
同样地:
var roleWithUsers = ctx.Roles.Include("UserRoles.User");
正如我所说,在大多数情况下,多对多,连接表中只需要FK。
如果可能,删除该字段,然后更新您的模型,多对多将“正常工作”。