我将使用Linq查询获取List用户。我有本地加密用户密码,但当初始化本地类归档到实体模型类字段时,它显示以下错误...
cannot convert from 'HalifaxWCFProject.PasswordEncrypt.UserLogin' to 'HalifaxWCFProject.HalifaxDatabaseEntities' HalifaxWCFProjet
这是我的本地课程。
[DataContract]
public class UserLogin
{
string id;
string username;
string password;
string email;
[DataMember]
public string Id
{
get { return id; }
set { id = value; }
}
[DataMember]
public string Username
{
get { return username; }
set { username = value; }
}
[DataMember]
public string Password
{
get { return password; }
set { password = value; }
}
[DataMember]
public string Email
{
get { return email; }
set { email = value; }
}
}
}
这是方法..
[OperationContract]
[WebInvoke(Method = "GET",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "/GetAllStudent/")]
List<UserLogin> GetAllStudent();
以下是该方法的实现。
public List<UserLogin> GetAllStudent()
{
var query = (from a in ctx.tblUsers
select a).Distinct();
List<HalifaxDatabaseEntities> userList = new List<HalifaxDatabaseEntities>();
query.ToList().ForEach(rec =>
{
userList.Add( new UserLogin
{
Id =Convert.ToString(rec.Id),
Username = rec.Username,
Password = rec.Password,//Error on this line
Email = rec.Email
});
});
return userList;
}
}
解决方案是什么?任何帮助将不胜感激。
答案 0 :(得分:0)
这一行:
List<HalifaxDatabaseEntities> userList = new List<HalifaxDatabaseEntities>();
需要:
List<UserLogin> userList = new List<UserLogin>();
答案 1 :(得分:0)
您错误地声明了userList
变量的变量类型。只需使用var
关键字,即可让生活更轻松(代码更易读)。
但是,出于可读性原因,最好使用Select
来创建新类型。
var query = (from a in ctx.tblUsers select a).Distinct();
var result = query.Select(rec => new UserLogin
{
Id = Convert.ToString(rec.Id),
Username = rec.Username,
Password = rec.Password,
Email = rec.Email
});
return result.ToList();
如果您不想使用query
和result
变量,也可以进一步折叠它。
此外,Distinct
似乎在这里没有任何区别,因为您已经从单个表中进行选择。