【问题标题】:Linq Query FiledLinq 查询字段
【发布时间】:2017-09-26 00:21:20
【问题描述】:

我将通过使用 Linq 查询来获取列表用户。我有本地加密用户密码,但是当初始化本地类归档到实体模型类字段时,它显示以下错误......

 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;
        }

    }

有什么解决办法。任何帮助将不胜感激。

【问题讨论】:

  • 你为什么不把userList变成List&lt;UserLogin&gt;
  • @juharr 给出了这个问题,我会说它是从某处继承或复制粘贴的......
  • List 因为我要返回用户列表。

标签: c# linq wcf


【解决方案1】:

您错误地为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 似乎在这里没有什么不同,因为您已经从单个表中进行选择。

【讨论】:

  • 非常感谢
【解决方案2】:

这一行:

            List<HalifaxDatabaseEntities> userList = new List<HalifaxDatabaseEntities>();

必须是:

        List<UserLogin> userList = new List<UserLogin>();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多