gpt4 book ai didi

asp.net - Entity Framework : how to implement shared primary key with Fluent API?

转载 作者:行者123 更新时间:2023-12-02 21:08:48 26 4
gpt4 key购买 nike

我有两张表,想使用其中一张表的 PK 在另一张表中作为 PK。

这是我使用数据注释的实现:

public class User
{
public System.Guid UserId { get; set; }
public string UserName { get; set; }
}

public class Student
{
[Key, ForeignKey("User")]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public System.Guid StudentId { get; set; }

public string FirstName { get; set; }

public string LastName { get; set; }

// shared primary key
public virtual User User { get; set; }
}

此处 Student 表使用 User 的主键。

如何使用 Fluent API 实现此功能?

(第二个问题,如果我从Student表中删除一个值,会导致级联删除吗?)

最佳答案

How can I implement this with Fluent API?

modelBuilder.Entity<Student>()
.HasRequired(s => s.User)
.WithOptional();

if I delete a value from Student table, will accur a cascade delete.

否,因为 Student 是关系中的依赖项(它带有外键),而不是主体(即 User)。仅当删除主体时,级联删除才有效。对于一对一关系,您必须手动启用它:

modelBuilder.Entity<Student>()
.HasRequired(s => s.User)
.WithOptional()
.WillCascadeOnDelete(true);

现在,如果用户被删除,相关的学生(如果有的话)也将被删除。

关于asp.net - Entity Framework : how to implement shared primary key with Fluent API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14498934/

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