我是 ASP.NET 和 C# 的新手,使用 mysql 和 postgresql。
我正在尝试将 Null 值存储到数据库中的 GUId 列。但它在保存数据时会出错,因为它默认将 guid.empty 值存储到数据库中。
谁能告诉我如何将空值从 C# 代码存储到数据库?
谢谢
您很可能正在使用经典的 Guid 结构。如果您的代码如下所示:
public class Dog
{
public Guid Token { get; set;}
}
那么您使用的是经典的 Guid 结构。由于“Guid”是一种结构类型,因此引用“Token”将始终具有一个值,默认情况下该值全为零。您想要的(如果您希望使 Guid 真正可以为空)是在 Guid 结构上使用可为空的类型修饰符。它如下所示:
public class Dog
{
public Guid? Token { get; set;}
}
现在,如果您不为“令牌”分配值,它将为空。
* 请注意,这可能会引入细微的变化并且难以跟踪 NullExceptions。*
很确定你基本上有两个选择。
这可能是错误的形式(?),但也要记住可能的 Guid 的绝对数量,如果您担心 Guid 随机为空,除非您正在处理数量惊人的记录,否则这种情况发生的可能性是极不可能的。前提是您当然使用 Guid.NewGuid() 来生成您的 Guid。