gpt4 book ai didi

c# - asp.net mvc 获取关系数据的更好方法

转载 作者:行者123 更新时间:2023-11-30 23:34:06 25 4
gpt4 key购买 nike

我正在构建一个允许用户(具有管理员角色)添加/管理其他用户的 asp.net mvc 站点

为此,我在数据库中添加了一个名为 ManagerUsers 的关系表,其中包含一个经理 ID 和一个用户 ID。当经理邀请用户时,数据存储在 ManagerUsers 表中。

当经理查看用户时,我正在执行以下操作:

using (var context = new ApplicationDbContext())
{
Guid myId = Guid.Parse(User.Identity.GetUserId());
var userIds = context.ManagersUsers.Where(u => u.ManagerId == myId).Select(u => u.UserId.ToString()).ToList();

var userProfiles = context.Users.Where(t => userIds.Contains(t.Id)).ToList();

return View(userProfiles);
}

这工作正常,但似乎有点缓慢和冗长。有谁知道更好的方法吗?

编辑:根据一些回复,我认为我需要澄清我的问题。我想知道的是,是否有比从 ManagerUsers 表中获取用户 ID 列表然后从 Users 表中的所有用户中查找它们更好的方法来获取受我管理的用户列表?也许有更好的方法来存储这些数据以加快检索速度?

最佳答案

本教程展示了定义与 Entity Framework 和虚拟属性的关系的示例:

https://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

它看起来像这样:

    public virtual <ApplicationUser> User { get; set; }

这实际上会创建一个与两个模型相关的表。从这里您应该能够使用 ManagerUser.Users 或类似的东西来获取用户。我还将遵循梅森的示例并实现存储库模式。

关于c# - asp.net mvc 获取关系数据的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33568954/

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