我正在尝试创建一个简单的 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/

10-09 19:28