2011-12-22 67 views
0

我想填充我的WebGrid从LINQ到SQL。在LINQ中选择特定列作为特定名称?

它有以下栏目: 用户名 电子邮件 名 姓 IsApproved IsLockedOut IsOnline LastActivityDate LastLoginDate CreationDate

所有这一切都来自于用户对象: dbc.Users

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

我想:

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

对于用户名,但它无法正常工作。

我该怎么做?

+0

你能解释一下这个好一点吗? – 2011-12-22 18:26:36

回答

2

这将是:

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

否=>财产分配,但假设这是不是这样,你需要的是“扁平化”的多个对象之间的结果集,一个办法来解决有一个具有多个表的实体是通过使用匿名类来管理这样的:

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

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