在LINQ中选择特定列作为特定名称

本文关键字:定名称 选择 LINQ | 更新日期: 2023-09-27 18:18:41

我正在尝试填充我的WebGrid从LINQ到SQL。

包含以下列:用户名电子邮件第一个名字姓IsApprovedIsLockedOutIsOnlineLastActivityDateLastLoginDate创建日期

所有这些都来自User对象:dbc。用户

然而,除了名字和姓氏之外的所有内容都是aspnet_Membership和aspnet_User的关联,这是在我的LINQ to SQL中定义的。如何将这些设置为正确的列名?

我试着:

var accounts = dbc.Users.Select(User => new User
{
      Username => aspnet_Membership.username
}).ToList();

为用户名,但不能工作。

我该怎么做呢?

在LINQ中选择特定列作为特定名称

应该是:

var accounts = dbc.Users.Select(User => new User
{
      Username = aspnet_Membership.username
}).ToList();

No =>用于属性分配,但假设情况并非如此,您需要的是"扁平化"多个对象之间的结果集,解决具有多个表的一个实体的一种方法是通过使用匿名类来管理:

var accounts = from u dbc.Users
               let m = dbc.aspnet_Memberships.First(i => i.ProviderUserKey == u.UserKey)
               select new
    {
          Username = m.username,
          FirstName = u.FirstName
    }).ToList();
或者,定义一个视图,并将其添加到您的模型中。这是拥有公共实体的另一种方式。