ASP.NET MVC 核心外键
Posted
技术标签:
【中文标题】ASP.NET MVC 核心外键【英文标题】:ASP.NET MVC Core foreign key 【发布时间】: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;
所有属性都从我的数据库加载,但用户中的角色角色保持为空
【问题讨论】:
【参考方案1】:从数据库加载时尝试添加.Include(u => u.Role)
。这类似于 SQL JOIN
。
https://www.entityframeworktutorial.net/efcore/querying-in-ef-core.aspx
【讨论】:
谢谢!另外这些之间有什么区别,为什么第二个不起作用?var list = context.Users .Include(u => 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<User>(); return users
在第二个中,您只是选择用户 (select u
) 而不更改 User
上的 Role
属性。 Include()
自动执行此操作。以上是关于ASP.NET MVC 核心外键的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core MVC POST 方法一个具有外键 ID 的模型
如何从 ASP.NET 核心 mvc 向 asp.net 核心中的 Web API 发出 PUT 请求?