답변:
다음과 같이 속성에서 열 순서를 지정할 수 있습니다.
public class MyEntity
{
[Key, Column(Order=0)]
public int MyFirstKeyProperty { get; set; }
[Key, Column(Order=1)]
public int MySecondKeyProperty { get; set; }
[Key, Column(Order=2)]
public string MyThirdKeyProperty { get; set; }
// other properties
}
Find
a 의 방법을 사용하는 경우 DbSet
주요 매개 변수에 대해이 순서를 고려해야합니다.
Slauma가 제출 한 정답을 완료하려면 HasKey 메서드를 사용하여 복합 기본 키의 순서도 지정할 수 있습니다.
public class User
{
public int UserId { get; set; }
public string Username { get; set; }
}
public class Ctp5Context : DbContext
{
public DbSet<User> Users { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().HasKey(u => new
{
u.UserId,
u.Username
});
}
}
저처럼 구성 파일을 선호한다면 다음과 같이 할 수 있습니다 (Manavi의 예를 기반으로 함).
public class User
{
public int UserId { get; set; }
public string Username { get; set; }
}
public class UserConfiguration : EntityTypeConfiguration<User>
{
public UserConfiguration()
{
ToTable("Users");
HasKey(x => new {x.UserId, x.Username});
}
}
당연히 컨텍스트에 구성 파일을 추가해야합니다.
public class Ctp5Context : DbContext
{
public DbSet<User> Users { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new UserConfiguration());
}
}