过去几周我一直在研究 .NET Core,并决定尝试 EF Core(来自 ASP.NET MVC 和 NHibernate)。经过一番挖掘后,我发现了一个很好的扩展,称为EF Visual Designer。它允许我直观地创建模型并生成代码。
我定义了一个简单的一对一关系,如图所示: 简单的一对一关系
生成代码后,我得到以下 Fluent API 代码:
modelBuilder.Entity<Authentication>()
.ToTable("Authentications")
.HasKey(t => t.Id);
modelBuilder.Entity<Authentication>()
.Property(t => t.Id)
.IsRequired()
.ValueGeneratedOnAdd();
modelBuilder.Entity<User>()
.ToTable("Users")
.HasKey(t => t.Id);
modelBuilder.Entity<User>()
.Property(t => t.Id)
.IsRequired()
.ValueGeneratedOnAdd();
modelBuilder.Entity<User>()
.HasOne(x => x.Authentication)
.WithOne()
.HasForeignKey("Authentication_Id")
.IsRequired();
Run Code Online (Sandbox Code Playgroud)
用户类具有以下(相关)属性:
public Class User {
[Key]
[Required]
public Guid Id { get; set; }
...
public virtual Authentication Authentication { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
身份验证具有以下(相关)属性:
public class Authentication {
[Key]
[Required]
public …Run Code Online (Sandbox Code Playgroud)