基于userID访问EF中的实体

时间:2013-10-06 09:42:22

标签: entity-framework c#-4.0 ef-database-first

我希望能够定义使用EF5访问实体的逻辑。就像我的订单实体有UserId所以我想从代码中的任何地方,如果查询命中订单它需要由当前登录用户过滤。 我正在使用数据库第一种方法。

1 个答案:

答案 0 :(得分:0)

通常这是一个两阶段的过程。

首先,拥有用户的用户名,从数据源中检索用户记录:

string UserName = HttpContext.Current.User.Identity.Name;
User user = context.Users.FirstOrDefault( u => u.UserName == UserName );

然后,您为特定用户过滤数据:

IEnumerable<Order> orders = context.Orders.Where( o => o.UserId == user.Id );

您可以进一步优化流程,以便不必在每次请求时检索用户记录,而是可以将UserId存储在身份验证cookie中。