Ado.Net Entity : Object doesn’t display linked members (foreign keys)

I have a simple databasescheme: User, Account. User has 1-to-many relationship with Account.

I have generated a ado.net entity data model, and I can create users and accounts, and even link them together. In the database the account.user_id is correctly filled, so theoretically I should be able to acces User.Account.ToList() in C# through entity.

However, When I try to acces User.Account.ToList() I get zero results.

User user = db.User.First(U => U.id == 1);
List
<Account> accounts = user.Account.ToList(); ##count = 0

When I add the following code before the previous code it suddenly gives me the correct count 2.

 Account account1 = db.Account.First(A => A.id == 1);
 Account account2 
= db.Account.First(A => A.id == 2);
 User user 
= db.User.First(U => U.id == 1);
 List
<Account> accounts = user.Account.ToList(); ##count = 2??

What am I missing here?

 

 

You should use the ObjectQuery.Include method for this. Your method works also but results in an additional query.

In your example you would get

User user = db.User.Include("Account").First(u => u.id == 1);

You have to figure out whether the string "Account" is correct. Usually it should be prefixed with something like MyEntities. This depends on the namespace of your entities but with a little trial and error you should be able to figure this out.

 

posted @ 2009-07-08 14:47  ejiyuan  阅读(245)  评论(0编辑  收藏  举报