我有一个简单的数据库方案:用户,帐户。用户与帐户具有一对多关系。
我已经生成了 ado.net 实体数据模型,我可以创建用户和帐户,甚至可以将它们链接在一起。在数据库中,account.user_id 已正确填写,因此理论上我应该能够通过实体访问 C# 中的 User.Account.ToList() 。
但是,当我尝试访问 User.Account.ToList() 时,我得到零结果。
User user = db.User.First(U => U.id == 1);
List<Account> accounts = user.Account.ToList(); ##count = 0...
当我在前面的代码之前添加以下代码时,它突然给出了正确的计数 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...??
我在这里缺少什么?
您应该使用对象查询.包含 http://msdn.microsoft.com/en-us/library/bb738708.aspx方法用于此。您的方法也有效,但会导致额外的查询。
在你的例子中你会得到
User user = db.User.Include("Account").First(u => u.id == 1);
你必须弄清楚字符串是否"Account"
是正确的。通常它应该以类似的前缀MyEntities
。这取决于实体的名称空间,但经过一些尝试和错误,您应该能够弄清楚这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)