小编Roe*_*oel的帖子

Entity Framework Core 中的一对一关系

过去几周我一直在研究 .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)

c# entity-framework entity-framework-core

5
推荐指数
1
解决办法
1万
查看次数