![](/img/trans.png)
[英]How to specify foreign key property for one to zero..one relation using fluent api in Entity Framework
[英]Entity Framework: how to implement shared primary key with Fluent API?
我有兩個表,並希望使用其中一個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
表中刪除一個值,是否會進行級聯刪除?)
如何使用Fluent API實現此功能?
modelBuilder.Entity<Student>()
.HasRequired(s => s.User)
.WithOptional();
如果我從學生表中刪除一個值,將進行級聯刪除。
不,因為Student
是關系中的依賴(它攜帶外鍵)而不是主體(即User
)。 級聯刪除僅在刪除主體時有效。 對於一對一關系,您必須手動啟用它:
modelBuilder.Entity<Student>()
.HasRequired(s => s.User)
.WithOptional()
.WillCascadeOnDelete(true);
現在,如果User
被刪除,相關的Student
(如果有的話)也將被刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.