问题标签 [nullable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
51811 浏览

c# - 将 Linq 中的可为空类型与 Sql 进行比较

我有一个具有 Nullable ParentId 字段的 Category 实体。当执行下面的方法并且 categoryId 为 null 时,结果似乎为 null 但是有些类别的 ParentId 值为 null。

这里有什么问题,我错过了什么?

顺便说一句,当我将条件更改为 (c.ParentId == null) 时,结果似乎正常。

0 投票
2 回答
8843 浏览

c# - NHibernate 2.0.1 中的可空日期时间

两个问题可能会立即显而易见,但我已经花了太长时间追踪它们:

  1. 我已经设置了一个 AuditInterceptor 以便对实现我的 IAuditable 接口的实体进行自动审计,该接口的使用如下:

    公共类 AuditInterceptor : EmptyInterceptor { public override bool OnSave(object entity, object id, object[] state, string[] propertyNames, IType[] types) { var auditable = entity as IAuditable;

    }

这两个字段在数据库、POCO 和映射文件中都不能为空。但是,在保存时,在调用拦截器时(可以单步执行并查看设置为 DateTime.Now 的适用字段),仍然会引发 SqlDateTime 异常:

SqlDateTime 溢出。必须在 1753 年 1 月 1 日上午 12:00:00 到 9999 年 12 月 31 日晚上 11:59:59 之间

我之前在某个地方(映射文件、数据库、POCO)存在不匹配的地方看到过这种情况,其中 DateTime 在某些地方指定为空,而在其他地方不指定。但是,我已经检查过了,在这方面一切都很好。我可以在 SaveOrUpdate(entity) 之前手动设置值,它可以毫无问题地插入/保存。如果不手动设置它们,它就好像完全错过了拦截器(即使我知道不是),并且两个 DateTime 属性从未设置(因此被视为 DateTime.MinValue: 01/01/0001 ...)因此超出范围。但是在单步执行时,这些值已正确设置为 DateTime.Now。

怎么了?对于它的价值,我实际上之前也设置了一个事件监听器,它导致了同样的问题。

  1. 现在对于一个必须在某个地方回答的愚蠢问题,但我找不到它:作为处理上述问题的一部分,我迅速检查是否使 DateTime 始终可以为空,但我知道其中一个重大变化NHibernate 2.* 是不再支持 NHibernate.Nullables。因此,您在映射文件中使用什么来映射可为空的 DateTime?类型?对于即:

可以理解的是不起作用:

并且不再支持:

任何指针将不胜感激!

0 投票
1 回答
13297 浏览

nhibernate - NHibernate 2.* 映射文件:如何定义可为空的 DateTime 类型(DateTime?)?

我知道 NHibernate 2.* 的重大变化之一是不再支持 NHibernate.Nullables。因此,您在映射文件中使用什么来映射可为空的 DateTime?类型?对于即:

可以理解的是不起作用:

并且不再支持:

我知道它一定很明显,但我没有找到它!

答案很简单:NHibernate 将在有问题的类上进行反射,并发现属性的反射类型是 DateTime?全部靠自己。

谢谢@正义!

0 投票
5 回答
3326 浏览

c# - 可空的困惑

为什么禁止以下内容?

然而

不是

0 投票
5 回答
8597 浏览

dataset - 数据集字段 DBNull -> int?

SQLServer int 字段。值有时为空。DataAdapter 填充数据集 OK 并可以在 DatagridView 中显示数据 OK。

尝试以编程方式从数据集中检索数据时,Dataset 字段检索代码会引发 StronglyTypedException 错误。

通过在 get 访问器中检查 DBNull 并返回 null 解决了这个问题,但是......当数据集结构被修改(仍在开发中)时,我的更改(不出所料)消失了。

处理这种情况的最佳方法是什么?看来我被困在数据集级别处理它。是否有某种属性可以告诉自动代码生成器保留更改?

0 投票
3 回答
88229 浏览

c# - C# 中的可空方法参数

重复的问题

将空参数传递给 C# 方法

我可以在 C# 中为 .Net 2.0 执行此操作吗?

如果没有,我可以做类似的事情吗?

0 投票
15 回答
1928 浏览

sql - 我应该对 NOT NULL 列有多自由?

我正在设计一个数据库模式,我想知道我应该使用什么标准来决定每一列是否应该是nullable

我是否应该仅将那些绝对必须填写一行才能对我的应用程序有意义的列标记为 NOT NULL?

或者我应该标记我打算永远不会为空的所有列?

少量与大量 NOT NULL 列的性能影响是什么?

我假设很多 NOT NULL 列会减慢插入速度,但实际上可能会加快选择速度,因为查询执行计划生成器有更多关于列的信息。

比我知识渊博的人能给我介绍一下吗?

0 投票
4 回答
9594 浏览

oracle - 如何约束多个列以防止重复,但忽略空值?

这是我在 Oracle 数据库 (10g) 中运行的一个小实验。除了(Oracle 的)实现方便之外,我无法弄清楚为什么一些插入被接受而另一些被拒绝。

假设偶尔有一些列值未知的行是有意义的,我可以想到两个可能的涉及防止重复的用例:
1. 我想拒绝重复,但在任何受约束的列的值未知时接受。
2. 我想拒绝重复,即使在约束列的值未知的情况下。

显然,Oracle 实现了一些不同的东西:
3. 拒绝重复,但(仅)在所有受约束的列值都未知时接受。

我可以想办法利用 Oracle 的实现来处理用例 (2)——例如,为“未知”设置一个特殊值,并使列不可为空。但我不知道如何使用用例(1)。

换句话说,我怎样才能让 Oracle 这样做呢?

0 投票
6 回答
113569 浏览

c# - Nullable 和 Nullable 有什么区别.HasValue 或 Nullable!= 空?

我总是使用Nullable<>.HasValue,因为我喜欢语义。然而,最近我正在研究其他人的现有代码库,他们Nullable<> != null只使用了这些代码库。

是否有理由使用其中一个,还是纯粹是偏好?

  1. /li>

对比

  1. /li>
0 投票
14 回答
67659 浏览

c# - 总和可为空的 Linq 查询

我收到了这个查询,但是如果没有发现异常投票,它将失败:

我假设它是因为 sum 返回一个 int 而不是一个可为空的 int,所以给 sum 一个 int?由于输入仅给出相同的错误,可能导致 sum 仅适用于整数。

有什么好的解决方法吗?