我正在使用EF6,在我的客户表中,我希望有一个GUID类型且唯一的列。不必是主要的。我要使用它的目的是允许用户取消订阅电子邮件。因此,尽管每个客户在UnsubscribeEmailGuid
列下都有一个GUID,并且我以链接的形式发送该GUID,但是当他们单击它时,我可以确定它是哪个客户,并将他们的偏好设置为退订。>
现在如何使用EF,定义此列并确保在创建客户时它具有某些价值。我有点尝试:
public Guid UnsubscribeEmailGuid{ get; set; }
和:
Property(c => c.UnsubscribeEmailGuid)
.IsRequired()
.HasColumnAnnotation(IndexAnnotation.AnnotationName, new IndexAnnotation(new IndexAttribute {IsUnique = true}));
但是它会使用Guid 00000000-0000-0000-0000-000000000000
创建客户。
我很确定我必须对上述二传手属性进行某些操作,但是我的大脑已经停止工作了!
有人可以打扰我吗?还是我完全走错了路?
谢谢。
答案 0 :(得分:0)
尝试使用此示例,您必须初始化对象,例如,我有用户类,属性类型为GUID,因此:
[Table( "users" )]
public class user{
[Index(IsUnique = true)]
public Guid UnsubscribeEmailGuid{ get; set; }
public user(){
this.UnsubscribeEmailGuid = new Guid();
}
}
然后,当您创建用户的新实体时,构造函数会在UnsubscribeEmailGuid属性中分配一个值。除此之外,您可以将DataAnotation用于唯一索引。