我的班级中有一个属性,我将其设为可选。唯一的问题是该属性正在使用 Guid 并且是标准要求。我不知道如何使它可以为空。
我试图完成的是扩展membershipprovider whit一个新表,组,并在组和用户之间建立一对多的链接。
物业:
public virtual Guid GroupId { get; set; }
public virtual Group Group { get; set; }
那么我怎样才能使 Guid 属性可以为空呢?
我的班级中有一个属性,我将其设为可选。唯一的问题是该属性正在使用 Guid 并且是标准要求。我不知道如何使它可以为空。
我试图完成的是扩展membershipprovider whit一个新表,组,并在组和用户之间建立一对多的链接。
物业:
public virtual Guid GroupId { get; set; }
public virtual Group Group { get; set; }
那么我怎样才能使 Guid 属性可以为空呢?
实现它Nullable<Guid>
,又名Guid?
:
public virtual Guid? GroupId { get; set; }
如果您之前没有在 C# 中遇到过可为空的值类型,您可能需要阅读它们。
(顺便说一句,你真的需要属性是虚拟的吗?你期待不同的实现吗?)
Guid?
应该工作得很好。
但我不认为这是你真正想要的,因为我理解正确你想要一个可选的关系?在这种情况下,您应该删除 GroupId 属性,使其成为可选关系。
第二个选项是使用如下标记关系:
modelBuilder.Entity<Bla>().HasOptional(g => g.Group).WithRequired();