C# 始终从实体框架4查询中排除属性
我有一个具有以下属性的用户实体,该属性映射到数据库中的字段:C# 始终从实体框架4查询中排除属性,c#,linq,entity-framework-4,C#,Linq,Entity Framework 4,我有一个具有以下属性的用户实体,该属性映射到数据库中的字段: Id int Username varchar(25) Password binary(64) Salt binary(64) Name varchar(50) Locked bit 我不想做的是每次查询都返回密码和Salt。但对于某些查询,我确实希望能够检查密码(来自db.Users中的u.password==password select u)或
Id int
Username varchar(25)
Password binary(64)
Salt binary(64)
Name varchar(50)
Locked bit
我不想做的是每次查询都返回密码和Salt。但对于某些查询,我确实希望能够检查密码(来自db.Users中的u.password==password select u
)或设置密码/盐字段。我不希望128B总是在不需要的时候通过电线
我尝试将属性的getter设置为private,但这阻止了我在LINQ中使用它。基本上,如果我可以将属性设置为始终延迟加载,那就太酷了。创建一个用户存储库,使用POCO存储用户,而不使用密码和盐字段 存储库负责调用实体框架并用其数据填充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
}
}
那么,自动生成的用户类会发生什么情况呢?@thecloudlessky-您在存储库类中使用它(并限制在其他地方使用)。问题是,我有两个用户类(尽管来自不同的名称空间)。这不是很麻烦吗?@thecloudlessky-当使用存储库时,消费者根本不需要访问EF生成的类。因此,他们应该只看到您的MyCompany.Data.Repositories.User类。