【问题标题】:How to get multiple column value from database into a list using LINQ query如何使用 LINQ 查询从数据库中获取多列值到列表中
【发布时间】:2019-10-01 12:26:08
【问题描述】:

我想在 c# 中使用 LINQ 查询将FullName, Emailcolumn 值获取到一个列表中,然后获取这些值,但它给出了以下错误; Cannot implicity convert type Systems.Collections.Generic.List<<anoynymous type: string FullName>>

List <PlayerDetails> details = (from x in conn.Table<PlayerDetails>().Where(x => x.Email == emailTextVal).Select(p => new { p.FullName }) select x).ToList();
  SoccerAvailability soccerAvailability = new SoccerAvailability();
  soccerAvailability.FullName = details[0].FullName;
  soccerAvailability.Email = emailTextVal;

【问题讨论】:

  • 您的 linq 查询映射到 List 但在查询中您正在执行 Select(p => new { p.FullName })。换句话说,在那时创建一个新的匿名类型。因此类型映射失败。

标签: sqlite linq xamarin.forms


【解决方案1】:

为什么不直接选择整个PlayerDetail 记录?

List <PlayerDetails> details = conn.Table<PlayerDetails>().Where(x => x.Email == emailTextVal).ToList();
SoccerAvailability soccerAvailability = new SoccerAvailability();
soccerAvailability.FullName = details[0].FullName;
soccerAvailability.Email = emailTextVal;

或者,您真的只需要选择FullName,因为您已经知道电子邮件值

【讨论】:

    【解决方案2】:

    您不应该将 Lambda 与 C# 表达式混为一谈,我的意思是您可以,但我不推荐它。 我认为这是您需要的查询:

    (from x in conn.Table<PlayerDetails>()
    where x.Email == emailTextVal
    select new {
      Name = x.FullName,
      Email = x.Email
    }).ToList()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多