如何将null设置为GUID属性

我有一个Employee类型的对象,它有一个Guid属性。 我知道如果我想设置为null我必须将我的type属性定义为Nullable prop或Guid? 支柱。

但在我的情况下,我无法改变道具的类型,所以它将保持为Guid类型和我的同事,我们不想使用Guid.Empty。

有没有办法将我的属性设置为null或string.empty,以便将数据库中的字段重新设置为null。

我有一个从string.empty转换为null的机制,但如果将更改为接受空guid为null,我将更改许多内容。

请帮忙!

有没有办法将我的属性设置为null或string.empty,以便将数据库中的字段重新设置为null。

不,因为它不可空。 如果你想让它可以为空,你必须使用Nullable – 如果你没有,那么开始使用Nullable是没有意义的。 你有一个根本问题 – 你实际上知道,给出你的第一段。 你已经说过,“我知道如果我想要达到A,我必须做B – 但我想在不做B的情况下达到A.” 根据定义,这是不可能

你可以得到的最接近的是使用一个特定的GUID代表空值 – Guid.Empty是明显的候选者,但是你因为未指明的原因而拒绝了。

 Guid? myGuidVar = (Guid?)null; 

它可能是。 不需要不必要的铸造。

 Guid? myGuidVar = null; 

选择你的毒药 – 如果你不能改变属性的类型可以为空,那么你将不得不使用“魔术”值来表示NULL。 Guid.Empty看起来和其他任何一样好,除非你有一些不想使用它的具体原因。 第二个选择是Guid.Parse("ffffffff-ffff-ffff-ffff-ffffffffffff")但这是更加丑陋的恕我直言。

由于“Guid”不可为空,因此请使用“Guid.Empty”作为默认值。

您可以对属性的DefaultValue使用typeof(Guid),“00000000-0000-0000-0000-000000000000”。

你可以先使用guid变量来接受null吗? 运算符然后你使用Guid.Empty或使用(Guid?)null将它强制转换为null;

例如:Guid? id = Guid.Empty; 还是Guid? id =(Guid?)null;