gpt4 book ai didi

c# - ? : Operator in LINQ Query

转载 作者:行者123 更新时间:2023-12-04 03:02:58 24 4
gpt4 key购买 nike

  • 如何在LINQ查询的SELECT子句中使用?:运算符?如果无法做到这一点,我该如何模仿呢?目的是在我的select子句中获得一个CASE块。您可能会怀疑,我遇到了一个错误:无效的匿名类型成员声明符。必须使用成员分配,简单名称或成员访问权限来声明匿名类型成员。
  • 这是说“从a.ipid = i.id上的内部联接i到i.uid = u.id上的内部联接u”的正确方法还是充分的方法?如果没有,请提供一个。谢谢。
    var query =
    from a in db.tblActivities
    from i in db.tblIPs
    from u in db.tblUsers
    select new {
    u.UserName == null
    ? i.Address
    : u.UserName,
    a.Request,
    a.DateTime };
  • 最佳答案

    创建匿名类型时(在不指定类型的情况下对“new”进行的操作),您必须为每个属性指定成员名称。从您的示例中,它看起来像这样:(还修复了连接)

    var query = from a in db.tblActivities
    join i in db.tblIPs on a.ipid equals i.id
    join u in db.tblUsers on i.uid equals u.id
    select new {
    UserName = (u.UserName ?? i.Address),
    Request = a.Request,
    Date = a.DateTime
    };

    您可能也可以使用UserName进行操作:
    UserName = (u.UserName == null) ? i.Address : u.UserName,

    但是??运算符更加简洁。它类似于SQL中的“isnull”。

    关于c# - ? : Operator in LINQ Query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/282791/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com