我是ASP.NET和C#的新手,使用mysql和postgresql。
我正在尝试将Null值存储到数据库中的GUId列。但是在保存数据时它会出错,因为它默认将guid.empty值带到数据库。
任何人都可以告诉我如何将C#代码中的空值存储到数据库?
由于
答案 0 :(得分:1)
非常确定你基本上有两种选择。
这可能是不好的形式(?)但是还要记住可能的Guids的数量,如果你担心Guid会随机发现这种情况发生的可能性,除非你处理的数量惊人的记录是不太可能。前提是你正在使用Guid.NewGuid()来生成你的Guid。
答案 1 :(得分:1)
您可能正在使用classic Guid structure。如果您的代码如下所示:
public class Dog
{
public Guid Token { get; set;}
}
然后你使用经典的Guid结构。由于'Guid'是结构类型,引用'Token'将始终具有一个值,默认情况下它是全零。你想要的是什么(如果你想让Guid真正可以为空)是在Guid结构上使用可空类型修饰符。它看起来如下:
public class Dog
{
public Guid? Token { get; set;}
}
现在,如果你没有为'Token'赋值,它将为null。
*请注意,这可能会引入微妙的变化,并且很难跟踪NullExceptions。*