Bla*_*azi 3 asp.net asp.net-mvc entity-framework data-annotations
我有两个表,并希望使用其中一个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; }
}
Run Code Online (Sandbox Code Playgroud)
这里Student使用表User的主键.
如何使用Fluent API实现此功能?
(作为第二个问题,如果我从Student表中删除一个值,会产生级联删除吗?)
如何使用Fluent API实现此功能?
modelBuilder.Entity<Student>()
.HasRequired(s => s.User)
.WithOptional();
Run Code Online (Sandbox Code Playgroud)
如果我从学生表中删除一个值,将进行级联删除.
不,因为Student是关系中的依赖(它携带外键)而不是主体(它是User).级联删除仅在删除主体时有效.对于一对一关系,您必须手动启用它:
modelBuilder.Entity<Student>()
.HasRequired(s => s.User)
.WithOptional()
.WillCascadeOnDelete(true);
Run Code Online (Sandbox Code Playgroud)
现在,如果User删除了相关的Student(如果有的话),也会被删除.
| 归档时间: |
|
| 查看次数: |
2051 次 |
| 最近记录: |