Linq查询归档

时间:2017-09-26 00:21:20

标签: c# linq wcf

我将使用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;
        }

    }

解决方案是什么?任何帮助将不胜感激。

2 个答案:

答案 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();

如果您不想使用queryresult变量,也可以进一步折叠它。

此外,Distinct似乎在这里没有任何区别,因为您已经从单个表中进行选择。