Всегда исключать свойство из Entity Framework 4 Query - PullRequest
2 голосов
/ 29 июня 2010

У меня есть пользовательский объект со следующими свойствами, которые сопоставляются с полем в базе данных:

Id         int  
Username   varchar(25)  
Password   binary(64)   
Salt       binary(64)   
Name       varchar(50)  
Locked     bit  

Чего я не хочу, так это всегда возвращать Пароль и Соль для каждый запрос.Но для определенных запросов я хочу иметь возможность проверить пароль (from u in db.Users where u.Password == password select u) или установить поля Пароль / Соль.Я не хочу, чтобы 128B всегда проходило по проводам, когда в этом нет необходимости.

Я попытался установить для геттера свойство private, но это не позволило мне использовать его в LINQ.В принципе было бы здорово, если бы я мог установить для свойства всегда ленивая загрузка .

1 Ответ

3 голосов
/ 29 июня 2010

Создайте репозиторий пользователя, который использует POCO для хранения пользователя без полей Password и Salt.

Репозиторий обрабатывает вызов Entity Framework и заполнение вашего POCO его данными.

namespace MyCompany.Data.Repositories
{
    public class User
    {
        public int Id { get; set; }
        public string Username { get; set; }
        public string Name { get; set; }
        public bool Locked { get; private set; }
    }

    public class UserRepository
    {
        public User GetAll() { }
        public User GetById() { }

        // Add your check password method here
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...