【问题标题】:How to set Null-able Guid value in LINQ Query C#如何在 LINQ Query C# 中设置 Null-able Guid 值
【发布时间】:2018-02-16 16:43:11
【问题描述】:

我有 Guid,我将其标记为可空

public struct abc
{
    public Guid Id { get; set; }
    public Guid? PreviousCalculatedId { get; set; }
    public Guid? NextCalculatedId { get; set; }
}

但我在针对 PreviousCalculatedId 和 NextCalculatedId 的 LINQ 查询中遇到构建错误

错误

   error is cannot implicitly convert type system.Guid to bool

.

 var answerDataView = (from Calc in dbContext.Calculation
                       where Calc .abcId == abcId && Calc .Id == GivenCalcId
                        select new abc
                          {
                            Id = mylist.listedItemId,
                            Text = Calc .Value,
                            NextCalculatedId? = sortedAnswerList.ItemOnRight[0],
                            PreviousCalculatedId? = sortedAnswerList.ItemOnLeft.ElementAt(0),


                               });

【问题讨论】:

  • 您遇到什么错误?另外我认为赋值时不需要可空运算符(?),只需省略它
  • 错误是不能隐式转换类型 system.Guid 到 bool
  • ItemOnRight 和 ItemOnleft 的数据类型是什么?
  • 他们是 List
  • 你是否去掉了问号并重新构建了项目?我认为问题是由于问号

标签: linq guid .net-core-2.0


【解决方案1】:

试试这个,

var answerDataView = (from Calc in dbContext.Calculation
                      where Calc .abcId == abcId && Calc .Id == GivenCalcId
                      select new abc
                      {
                            Id = mylist.listedItemId,
                            Text = Calc .Value,
                            NextCalculatedId = sortedAnswerList.ItemOnRight[0] ?? null,
                            PreviousCalculatedId = sortedAnswerList.ItemOnLeft.ElementAt(0) ?? null,
                       });

还有

【讨论】:

  • 我收到错误“运算符 ?? 不能应用 Guid 或 Null 类型的操作数
  • 您的 sortedAnswerList 是否包含元素?那些可以为空吗?
  • 有可能..是的
  • 你是对的,我需要将 Guid 的值设置为 public Stack ItemOnLeft { get;放; } public List ItemOnRight { get;放; }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 2015-12-18
  • 2016-10-15
  • 1970-01-01
  • 1970-01-01
  • 2017-09-26
  • 1970-01-01
相关资源
最近更新 更多