我正在尝试创建一个简单的 Entity Framework 代码优先应用程序。我有这些课:
public class User
{
public int UserId { get; set; }
public string Username { get; set; }
public virtual ActivationTicket ActivationTicket { get; set; }
}
public class ActivationTicket
{
public int ActivationTicketId { get; set; }
public virtual User User { get; set; }
public string Ticket { get; set; }
}
当我尝试创建一个新用户并将其保存到数据库(没有ActivationTicket的用户)时,出现异常
我假设EF将User和ActivationTicket之间的映射视为1-1,但应为1-0..1
我要怎么做才能使它正常工作?
最佳答案
您将需要这样的映射规则:
模型构建器
.Entity ()
.HasOptional (u => u.ActivationTicket)
.WithOptionalPrincipal();
这将为您提供一个ActivationTickets表,其UserId可为空。
关于c# - 如何使 Entity Framework 代码优先和可为空的外键属性起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5189701/