gpt4 book ai didi

LINQ 动态表达式 API,与 DBNull.Value 比较的谓词

转载 作者:行者123 更新时间:2023-12-01 11:09:53 27 4
gpt4 key购买 nike

我在使用动态表达式 API 时遇到问题。我似乎无法将 DataTable 字段与 DBNull.Value 进行比较。该 API 应该能够“支持静态字段或静态属性访问。任何公共(public)字段或属性都可以访问。”。但是给出以下查询:

 var whatever = table1.AsEnumerable()
.Join(table2.AsEnumerable(),
(x) => x.Field<int>("Table1_ID"),
(y) => y.Field<int>("Table2_ID"),
(x, y) => new { x, y})
.AsQueryable()
.Where("x[\"NullableIntColumnName\"] == DBNull.Value");

我最终得到错误:“类型'<>f__AnonymousType0`2'中不存在属性或字段'DBNull'”

有人对如何解决这个问题有想法吗?我不能在传递给 Where 方法的字符串中使用 Submission.Field("NullableIntColumnName"),顺便说一句,否则我将能够与 null 而不是 DBNull.Value 进行比较。

最佳答案

嗯,我终于明白了。 cptScarlet 几乎拥有它。

var values = new object[] { DBNull.Value };    
...
.Where("x[\"NullableIntColumnName\"] == @0", values);

或者
.Where("x[\"NullableIntColumnName\"] == @0", DBNull.Value);

关于LINQ 动态表达式 API,与 DBNull.Value 比较的谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1178122/

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