【问题标题】:Selecting specific columns as certain names in LINQ?在 LINQ 中选择特定列作为特定名称?
【发布时间】:2011-12-23 02:36:29
【问题描述】:

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

它有以下列: 用户名 电子邮件 名 姓 被批准 被锁定 在线 上次活动日期 上次登录日期 创建日期

所有这些都来自 User 对象: dbc.Users

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

我试过了:

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

对于用户名,但它不起作用。

我该怎么做?

【问题讨论】:

  • 你能解释清楚一点吗?

标签: c# asp.net sql linq


【解决方案1】:

应该是:

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();

或者,定义一个视图,并将其添加到您的模型中。这是拥有共同实体的另一种方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 2012-05-22
    • 2021-09-17
    • 2015-12-19
    • 2013-04-05
    • 1970-01-01
    • 2023-02-26
    相关资源
    最近更新 更多