gpt4 book ai didi

entity-framework - Entity Framework 映射到查找表

转载 作者:行者123 更新时间:2023-12-05 01:36:44 29 4
gpt4 key购买 nike

我有 3 个表需要与 Entity Framework 进行映射,但我不确定解决此问题的正确方法。这是我的 3 个实体:

public class User
{
[Key]
public int user_id {get; set;}
public string user_name {get; set;}

public virtual List<Role> roles {get; set;}
}

public class Role
{
[Key]
public int role_id {get; set;}

public string role_name {get; set;}
}

public class User_Role
{
[Key]
public int user_role_id {get; set;}

public int user_id {get; set;}
public int role_id {get; set;}
}

请注意 User_Role 实体仅代表一个查找表,用于将多个角色链接到单个用户。

使用 SQL 我只会做类似的事情:
SELECT User.user_name, Role.role_name FROM User INNER JOIN User_Role ON User_Role.user_id = User.user_id INNER JOIN Role ON Role.role_id = User_Role.role_id WHERE User.user_id = 123

我对 Entity Framework 比较陌生,所以我不确定使用 EF4 DbContext(可能还有 Fluent API?)解决这个问题的最佳方法,但我希望它非常简单。

提前致谢。

最佳答案

结果证明我需要使用 Fluent API 来映射多对多表(User_Role)。

     modelBuilder.Entity<Role>()
.HasMany<User>(u => u.users)
.WithMany(r => r.roles)
.Map(m =>
m.MapLeftKey("role_id")
m.MapRightKey("user_id")
m.ToTable("User_Role"));

关于entity-framework - Entity Framework 映射到查找表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7954738/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com