C# 如何使用linq加入aspnet_会员和aspnet_用户?
我很难想出如何使用LINQ连接aspnet表。 这是我的询问 如何连接这些aspnet表,或者如何使用LINQ/MVC 3获取这些aspnet表的确切列名或数据。aspnet_成员资格、aspnet_用户、aspnet_用户角色和aspnet_角色 一旦我得到这些值或它们的列名,我将把它们连接到不同数据库中的另外两个表中 下面是我在sqlserver中的代码,我想将其转换为LINQ语句C# 如何使用linq加入aspnet_会员和aspnet_用户?,c#,linq,join,C#,Linq,Join,我很难想出如何使用LINQ连接aspnet表。 这是我的询问 如何连接这些aspnet表,或者如何使用LINQ/MVC 3获取这些aspnet表的确切列名或数据。aspnet_成员资格、aspnet_用户、aspnet_用户角色和aspnet_角色 一旦我得到这些值或它们的列名,我将把它们连接到不同数据库中的另外两个表中 下面是我在sqlserver中的代码,我想将其转换为LINQ语句 SELECT AU.UserId, AU.UserName, ( MNTP.Las
SELECT AU.UserId,
AU.UserName,
( MNTP.LastName + ',' + MNTP.FirstName + ' '
+ LEFT(MNTP.MiddleName, 1) + '.' ) Name,
AR.RoleName
FROM aspnetdb..aspnet_Membership AM
INNER JOIN aspnetdb..aspnet_Users AU
ON AM.UserId = AU.UserId
INNER JOIN aspnetdb..aspnet_UsersInRoles AUR
ON AU.UserId = AUR.UserId
INNER JOIN aspnetdb..aspnet_Roles AR
ON AUR.RoleId = AR.RoleId
INNER JOIN User_ManagementDB..MNT_Users MNTU
ON AU.UserId = MNTU.aspnet_UsersID
INNER JOIN User_ManagementDB..MNT_Person MNTP
ON MNTU.PersonID = MNTP.ID
下面是我试图将其转换为LINQ语句的代码:
var _rolesRepo = new RolesRepository();
var _users = LoadAll();// Um_MNT_Users
var _person = entities.People.ToList();// UM_Person
var _role = _rolesRepo.LoadAll();
var _userMem = Membership.GetAllUsers()
.Cast<MembershipUser>()
.Select(m => m).ToList(); // I dont know if this is the right syntax to get the aspnet_membership.
var _query = from user in _users
join personID in _person on user.PersonID equals personID.ID
var\u rolesRepo=new RolesRepository();
var _users=LoadAll();//嗯,嗯,嗯,用户
var _person=entities.People.ToList();//嗯!
var _role=_rolesRepo.LoadAll();
var_userMem=Membership.GetAllUsers()
.Cast()
.Select(m=>m).ToList();//我不知道这是否是获得aspnet_成员资格的正确语法。
var\u query=来自用户中的用户
在user.personID等于personID.ID上的人中加入personID
伙计们,请帮帮我。因为我看不到问题被标记为
实体框架
,所以我假设您无法使用该逻辑创建存储过程,并在需要结果时调用它
如果所有数据都在内存中,则可以使用此查询:
var result = AspMemmership // the collection of data from aspnetdb..aspnet_Membership table
.Join(AspUsers, // the collection of data from aspnetdb..aspnet_Users table
m => m.UserId,
u => u.UserId,
(m, u) => u)
.Join(AspUsersInRoles,
u => u.UserId,
ur => ur.UserId,
(u, ur) => new
{
u.UserId,
u.UserName,
ur.RoleId
})
.Join(AspRoles,
x => x.RoleId,
r => r.RoleId,
(x, r) => new
{
x.UserId,
x.UserName,
r.RoleName
})
.Join(MNT_Users,
x => x.UserId,
u => u.aspnet_UsersID,
(x, u) => new
{
x.UserId,
x.UserName,
u.PersonId,
r.RoleName
})
.Join(MNT_Persons,
x => x.PersonId,
p => p.Id,
(x, p) => new
{
x.UserId,
x.UserName,
u.PersonId,
Name = String.Format("{0},{1} {2}.",
p.LastName, p.FirstName, p.MiddleName.Substring(0, 1)),
r.RoleName
})
伙计们,请帮帮我(哦,非常感谢@RePierre.:)我还有最后一个问题,我如何分别获得Aspnet_会员和Aspnet_用户的名单?还有aspnet_用户角色,谢谢@用户1395586,若您有权访问数据库,您只需从数据库加载它们,就像您对
MNT\u Persons
所做的一样。否则,您可以使用MembershipProvider的GetAllUsers
方法,该方法适用于aspnet\u会员和aspnet\u用户,还是仅适用于aspnet\u会员?@JanmaelGetAllUsers
适用于aspnet\u用户
。有关角色,请参阅RoleProvider
ohh这是一个很大的帮助!这是aspnet_会员的代码吗?Membership.GetAllUsers().Cast().Select(m=>m.ToList()?你认为这是加入我的MNT_用户的正确方式吗?user.aspnet\u UsersID等于name.ProviderUserKey??非常感谢您抽出时间!你帮了大忙!的确