【问题标题】:Linq Query is causing error when trying to retrieve from database [duplicate]尝试从数据库中检索时,Linq Query 导致错误 [重复]
【发布时间】:2018-04-03 05:42:15
【问题描述】:

我尝试了以下查询以使用 linq 从数据库中获取列表,但出现以下错误

无法创建“System.Object”类型的常量值。此上下文仅支持原始类型或枚举类型。

我不确定为什么会导致错误。

 List<a> a = await (from p in new db_Context().Items
                    where p.sub_Var.Name.Equals((sender as Button).Text)
                    orderby p.Name
                    select p).ToListAsync();

【问题讨论】:

  • 确保您的发件人实际上是一个按钮对象,每次调用此函数时,除此之外我看不到空引用可能来自哪里

标签: c# linq


【解决方案1】:

使用 == 代替 Equals

 List<a> a = await (from p in new db_Context().Items
                    where p.sub_Var.Name == ((sender as Button).Text)
                    orderby p.Name
                    select p).ToListAsync();

编辑

如果您得到 null,请将按钮文本设置为变量并检查,

string buttonname = (sender as Button).Text;


List<a> a = await (from p in new db_Context().Items
                        where p.sub_Var.Name == buttonname 
                        orderby p.Name
                        select p).ToListAsync();

【讨论】:

  • 我现在得到,“对象引用未设置为对象的实例。'。任何想法和任何东西似乎都是空的
  • 你需要另一个 ( ,检查更新的答案
  • 对你有用吗
  • 您好,答案是先将其设置为变量,感谢您的帮助
【解决方案2】:
string name = (sender as Button).Text;

List<a> a = await (from p in new db_Context().Items
                    where p.sub_Var.Name == name 
                    orderby p.Name
                    select p).ToListAsync();

【讨论】:

    猜你喜欢
    • 2013-04-17
    • 1970-01-01
    • 2016-02-15
    • 2023-03-17
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多