.Net 6의 고급 Ef Core 및 PostgreSQL
YouTube에서 전체 동영상을 볼 수 있습니다.
Github에서 소스 코드를 찾을 수도 있습니다.
https://github.com/mohamadlawand087/Net6-EfCore-Postgres-V2
데이터베이스에서 테이블 이름 변경
modelBuilder.Entity<Driver>(entity =>
{
entity.HasOne(d => d.Team)
.WithMany(p => p.Drivers)
.HasForeignKey(d => d.TeamId)
.OnDelete(DeleteBehavior.Restrict)
.HasConstraintName("FK_Driver_Team");
entity.ToTable("F1Drivers");
});
modelBuilder.Entity<Team>().ToTable("F1Teams");
테이블 설명
modelBuilder.Entity<Team>()
.ToTable("F1Teams")
.HasComment("This table is used to store F1 teams information");
열 설명
modelBuilder.Entity<Team>()
.ToTable("F1Teams")
.HasComment("This table is used to store F1 teams information")
.Property(b => b.Name)
.HasComment("The Name of the team");
속성이 데이터베이스로 마이그레이션되는 것을 무시하는 방법을 살펴보겠습니다.
public class Driver : BaseEntity
{
public Guid TeamId { get; set; }
public string Name { get; set; } = "";
public int RacingNumber { get; set; }
public virtual Team Team { get; set; }
[NotMapped]
public string NumberAndName { get; set; }
}
public class Team : BaseEntity
{
public Team()
{
Drivers = new HashSet<Driver>();
}
public string Name { get; set; } = "";
public string Year { get; set; } = "";
[NotMapped]
public string NameAndYear { get; set; }
public virtual ICollection<Driver> Drivers { get; set; }
}
// Or with Fluent API
modelBuilder.Entity<Driver>(entity =>
{
entity.HasOne(d => d.Team)
.WithMany(p => p.Drivers)
.HasForeignKey(d => d.TeamId)
.OnDelete(DeleteBehavior.Restrict)
.HasConstraintName("FK_Driver_Team");
entity.ToTable("F1Drivers");
entity.Ignore(x => x.NumberAndName);
});
modelBuilder.Entity<Team>()
.ToTable("F1Teams")
.HasComment("This table is used to store F1 teams information")
.Ignore(x => x.NameAndYear);
열 이름 업데이트
// Fluent API
modelBuilder.Entity<Team>()
.Property(b => b.Id)
.HasColumnName("team_id");
public class Driver : BaseEntity
{
public Guid TeamId { get; set; }
public string Name { get; set; } = "";
[Column("racing_number")]
public int RacingNumber { get; set; }
public virtual Team Team { get; set; }
[NotMapped]
public string NumberAndName { get; set; }
}
열 데이터 유형
// Data Annotation
public class Driver : BaseEntity
{
public Guid TeamId { get; set; }
[Column(TypeName = "varchar(200)")]
public string Name { get; set; } = "";
[Column("racing_number")]
public int RacingNumber { get; set; }
public virtual Team Team { get; set; }
[NotMapped]
public string NumberAndName { get; set; }
}
// Fluent API
modelBuilder.Entity<Driver>(entity =>
{
entity.HasOne(d => d.Team)
.WithMany(p => p.Drivers)
.HasForeignKey(d => d.TeamId)
.OnDelete(DeleteBehavior.Restrict)
.HasConstraintName("FK_Driver_Team");
entity.Property(b => b.Name).HasColumnType("varchar(200)");
entity.ToTable("F1Drivers");
entity.Ignore(x => x.NumberAndName);
});
열 순서
modelBuilder.Entity<Driver>(entity =>
{
entity.HasOne(d => d.Team)
.WithMany(p => p.Drivers)
.HasForeignKey(d => d.TeamId)
.OnDelete(DeleteBehavior.Restrict)
.HasConstraintName("FK_Driver_Team");
entity.Property(b => b.Name).HasColumnType("varchar(200)");
entity.ToTable("F1Drivers");
entity.Ignore(x => x.NumberAndName);
entity.Property(b => b.Id)
.HasColumnOrder(0);
entity.Property(b => b.Name)
.HasColumnOrder(1);
entity.Property(b => b.RacingNumber)
.HasColumnOrder(2);
});
Reference
이 문제에 관하여(.Net 6의 고급 Ef Core 및 PostgreSQL), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/moe23/advance-ef-core-and-postgresql-in-net-6-3ipe텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)