我正在尝试将我的WebGrid从LINQ填充到SQL。
它包含以下列: 用户名 电子邮件 名字 姓 被批准 IsLockedOut 在线 LastActivityDate LastLoginDate CreationDate
所有这些都来自User对象: dbc.Users
然而,除了名字和姓氏之外的所有内容都是aspnet_Membership和aspnet_User之间的关联,它在我的LINQ to SQL中定义。如何将这些设置为正确的列名?
我试过了:
var accounts = dbc.Users.Select(User => new User
{
Username => aspnet_Membership.username
}).ToList();
对于用户名但不起作用。
我该怎么做?
答案 0 :(得分: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();
或者,定义一个视图,并将其添加到模型中。这是拥有共同实体的另一种方式。