我希望能够定义使用 EF5 访问实体的逻辑。就像我的订单实体有 UserId 一样,如果查询命中订单,我希望从代码中的任何位置获取它需要通过当前登录的用户进行过滤。我正在使用数据库优先方法。
问问题
56 次
1 回答
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 中。
于 2013-10-06T10:15:29.900 回答