【问题标题】:ASP.NET MVC Core foreign keyASP.NET MVC 核心外键
【发布时间】:2021-12-31 16:14:16
【问题描述】:

我有一个数据库优先的 asp.net mvc 核心项目,但我不确定如何使用外键。

[Table("tbUser")]
public class User
{
    [Key]
    [Column("UserID")]
    public int UserID { get; set; }

    [Column("RoleID")]
    public int RoleID { get; set; }

    [ForeignKey("RoleID")]
    public Role Role { get; set; }
}

[Table("tbRole")]
public class Role
{
    [Key]
    [Column("RoleID")]
    public int RoleID { get; set; }

    [Column("Role")]
    public string RoleName { get; set; }

    public ICollection<User> Users { get; set; }
}

所有属性都从我的数据库加载,但用户中的角色角色保持为空

【问题讨论】:

    标签: c# asp.net-mvc entity-framework foreign-keys


    【解决方案1】:

    从数据库加载时尝试添加.Include(u =&gt; u.Role)。这类似于 SQL JOIN

    https://www.entityframeworktutorial.net/efcore/querying-in-ef-core.aspx

    【讨论】:

    • 谢谢!另外这些之间有什么区别,为什么第二个不起作用? var list = context.Users .Include(u =&gt; u.Role) .ToList(); return list var query = from u in context.Users join r in context.Roles on u.RoleID equals r.RoleID select u; var users = query.ToList&lt;User&gt;(); return users
    • 在第二个中,您只是选择用户 (select u) 而不更改 User 上的 Role 属性。 Include() 自动执行此操作。
    猜你喜欢
    • 2021-11-09
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    相关资源
    最近更新 更多