2015-12-23 3 views
2

Можно ли запросить таблицу AspNetUsers на основе ключевых слов, используя дизайн N-Tier по образцу:Запросы Сеть САШ Идентичность таблицы в приложении Code First MVC

Implementing a generic data access layer using Entity Framework

Я создал следующие интерфейсы в моем DAL:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Library.Model; 

namespace Library.DataAccessLayer 
{ 
    ... 

    public interface IAspNetUserRepository : IGenericDataRepository<ApplicationUser> 
    { 
    } 

    public class AspNetUserRepository : GenericDataRepository<ApplicationUser>, IAspNetUserRepository 
    { 
    } 
} 

И следующая запись BLL:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using Library.DataAccessLayer; 
using Library.Model; 

namespace Library.BusinessLogicLayer 
{ 
    public interface IBusinessLogicLayer_AspNetUser 
    { 
     ApplicationUser GetAspNetUserByAspNetUserID(string _UserID); 
    } 

    public class BusinessLogicLayer_AspNetUser : IBusinessLogicLayer_AspNetUser 
    { 
     private readonly IAspNetUserRepository _AspNetUserRepository; 

     public BusinessLogicLayer_AspNetUser() 
     { 
      _AspNetUserRepository = new AspNetUserRepository(); 
     } 

     public BusinessLogicLayer_AspNetUser(IAspNetUserRepository AspNetUserRepository) 
     { 
      _AspNetUserRepository = AspNetUserRepository; 
     } 

     public ApplicationUser GetAspNetUserByAspNetUserID(string _UserID) 
     { 
      return _AspNetUserRepository.GetSingle(u => u.Id.Equals(_UserID)); 
     } 
    } 
} 

Теперь в BLL-файле единственное выражение Lambda не содержит Td, поэтому оно выдает ошибки.

Какая версия используется. Единственная информация, которую я могу найти, это то, что ApplicationUser наследует Identity User.

Что нужно сделать или изменить, чтобы я мог добавлять эти поля в модель ApplicationUser, не затрагивая первую часть кода для базы данных?

ответ

2

Я наконец нашел ответ. На самом деле я смотрел прямо в глаза.

просто используйте следующий код, чтобы получить пользователь (ей) объект:

var context = new ApplicationDbContext(); 
var user = context.Users.{Methods and Lambda expressions}; 

, например, говорят, что нужно существующий ИЗВЕСТНЫЙ UserName активного пользователя, используйте User.Identity.Name. И чтобы получить активную запись базы данных AspNetUsers пользователя:

var context = new ApplicationDbContext(); 
var user = context.Users.SingleOrDefault(u => u.UserName == User.Identity.Name);