2011-03-12 65 views

回答

0

是的。你已经基本上将SQL查询翻译成LINQ,并忘记了在LINQ中你可以导航导致自动连接的属性(即user.Role)。

在告诉Linq to SQL来引导用户角色(或者以其他方式:引入角色并包含相关用户)的同时获取用户会更简单。这里有一个链接,了解如何在不延迟加载的情况下执行此操作:http://www.singingeels.com/Blogs/Nullable/2008/10/27/EntityFramework_Include_Equivalent_in_LINQ_to_SQL.aspx

干杯

+0

嗨, 是的,我忘了这一点:-)但是我不能从用户身上一下子去角色 - 我从用户那里只能去用户角色。感谢您的链接。我想我想保持懒惰的加载,但... – TheDude 2011-03-12 14:01:23

3

那么,通过查询数据库使用直接的方法将工作。 但是,您完全绕过了会员资格及其提供的所有功能。

为什么不直接使用会员:

var roles = from MembershipUser u in Membership.GetAllUsers() 
      select new {user = u, 
      roles = Roles.GetRolesForUser(u.UserName)}; 

这样,如果在未来的数据库结构改变你的代码仍然可以工作,你不需要知道实现。

您认为如何?

PS:我没有检查会产生什么样的SQL的,所以如果你需要超强的性能仍可能会更好直来直去的DB

相关问题