gpt4 book ai didi

c# - 如何让 Entity Framework Code First 和可为空的外键属性工作?

转载 作者:可可西里 更新时间:2023-11-01 08:54:29 25 4
gpt4 key购买 nike

我正在尝试创建一个简单的 Entity Framework 代码优先应用程序。我有这些类(class):

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 的用户)时,我收到一个异常

The INSERT statement conflicted with the FOREIGN KEY constraint "ActivationTicket_User". The conflict occurred in database "Test", table "dbo.ActivatioTickets", column 'ActivationTicketId'. The statement has been terminated.

我假设 EF 将 User 和 ActivationTicket 之间的映射视为 1-1 但它应该是 1-0..1

我需要做什么才能让它发挥作用?

最佳答案

您将需要这样的映射规则:

modelBuilder    .Entity<User>()    .HasOptional<ActivationTicket>(u => u.ActivationTicket)    .WithOptionalPrincipal();

这将为您提供一个 ActivationTickets 表,其中的 UserId 可以为 null。

关于c# - 如何让 Entity Framework Code First 和可为空的外键属性工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5189701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com