2011-01-10 119 views
1

我已经生成的EDM文件看起来像以下:生成多对多的实体框架

alt text

如何转换这是一个多对多的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。

回答

1

好东西,你可能/可能不知道 - 如果你从的UserRole表中删除UserRoleId场,EF不会需要映射该连接表可言的,它会创建许多一对多为你进行关联,并在幕后对连接表进行“无声连接”。

话虽这么说,如果你必须有额外的字段,那么你可以做这样的事情:

var userWithRoles = ctx.Users.Include("UserRoles.Role"); 

而且同样:

var roleWithUsers = ctx.Roles.Include("UserRoles.User"); 

正如我虽然说,在大多数在连接表中需要多对多的情况下,只有FK是必需的。

如果可能,删除该字段,然后更新您的模型,多对多将“只是工作”。

+1

说到EF,你就像一个超级英雄。 – 2011-01-10 16:27:44