始终从Entity Framework 4 Query中排除属性

时间:2010-06-29 16:27:08

标签: c# linq entity-framework-4

我有一个具有以下属性的用户实体,这些属性映射到数据库中的字段:

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

我不想做的是始终为每个查询返回密码和Salt。但对于某些查询,我确实希望能够检查密码(from u in db.Users where u.Password == password select u)或设置密码/盐字段。我不希望128B 总是在不需要的时候通过电线。

我尝试将属性的getter设置为private,但这阻止了我在LINQ中使用它。基本上,如果我可以将属性设置为总是延迟加载,那将会很酷。

1 个答案:

答案 0 :(得分:3)

创建一个用户存储库,该存储库使用POCO存储没有密码和盐字段的用户。

Repository处理调用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
    }
}