小编use*_*742的帖子

使用 Linq 按可为空的日期时间字段过滤

我正在尝试过滤具有特定日期的 SQL 表中的所有行。如果该列不可为空,则它有效,但如果是,则失败。

这适用于不可为空的日期时间字段:

ent.MyTable.Where(e => e.MyDate.Day == 12);
Run Code Online (Sandbox Code Playgroud)

显然这不适用于可为空的日期时间字段。在互联网上进行了一些搜索后,我找到了许多解决此问题的“解决方案”,如下所示:

ent.MyTable.Where(e => e.MyDate != null && e.MyDate.Day == 12);
Run Code Online (Sandbox Code Playgroud)

不幸的是,这对我也不起作用。如果我考虑此错误消息,这是可以理解的:

“System.Nullable”不包含“Day”的定义,并且找不到接受“System.Nullable”类型的第一个参数的扩展方法“Day”(您是否缺少 using 指令或程序集引用?)

我想避免获取所有SQL 行,然后在 .NET 中过滤,因为我只对极少数行感兴趣。有没有其他我目前看不到的方法?

c# linq datetime linq-to-entities linq-to-sql

4
推荐指数
1
解决办法
2594
查看次数

Haskell:类型不匹配

我只是试着写一个简单的函数来计算输入Ints的平均值:

avg :: Int -> Int -> Int -> Float
avg x y z = (x+y+z)/3
Run Code Online (Sandbox Code Playgroud)

当我交换签名时

avg :: Float -> Float -> Float -> Float
Run Code Online (Sandbox Code Playgroud)

它工作正常,但有了上面的一个我得到以下错误信息:

无法将预期类型'Float'与实际类型'Int'匹配.

我有哪些可能使用第一个签名,它接受Ints(仅限)?

haskell signature

3
推荐指数
1
解决办法
2338
查看次数

如何将变量值用作正则表达式模式

我很绝望 - 我看不出我做错了什么.我尝试替换所有出现的'8969',但我总是得到原始字符串(无论tmp是字符串还是int).也许已经太晚了,也许我是瞎了,......

var tmp = "8969";
alert("8969_8969".replace(/tmp/g, "99"));
Run Code Online (Sandbox Code Playgroud)

有人可以帮我吗?

javascript regex replace

0
推荐指数
2
解决办法
445
查看次数