我有一个具有以下属性的用户实体,这些属性映射到数据库中的字段:
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中使用它。基本上,如果我可以将属性设置为总是延迟加载,那将会很酷。
答案 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
}
}