2011-12-22 8 views
0

WebGridをLINQからSQLに移そうとしています。LINQで特定の列として特定の列を選択していますか?

これは、次の列があります。これはすべてのユーザーオブジェクトから来て ユーザー名 メール ファーストネーム 姓 IsApproved IsLockedOut IsOnline LastActivityDate LastLoginDate のCreationDate

を: dbc.Users

ただし、名と姓を除くすべては、aspnet_Membershiの関連付けですpと私のLINQ to SQLで定義されているaspnet_User。これらを適切な列名としてどのように設定するのですか?

私が試した:usernameの

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

ない=が、1つを有する回避する一つの方法は、それはケースではありませんと仮定して何が必要なの複数のオブジェクト間のResultSetを「フラット化」することです、

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

またはビューを定義し、あなたのモデルにこれを追加します。複数のテーブルを持つエンティティは、匿名クラスを使用してこれを管理することです。これは、共通のエンティティを持つ別の方法です。

関連する問題