EF 코드 첫 Fluent API에서 외래 키를 정의하는 방법에 대한 질문이 있습니다. 다음과 같은 시나리오가 있습니다.외부 키 엔터티 프레임 워크 코드 지정 먼저 Fluent API
두 가지 클래스 Person과 Car. 내 시나리오에서 Car는 Person 또는 Not (1 또는 0의 관계)를 할당 할 수 있습니다. 코드 : 내 샘플에서
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Car
{
public int Id { get; set; }
public string Name { get; set; }
public Person Person { get; set; }
public int? PPPPP { get; set; }
}
class TestContext : DbContext
{
public DbSet<Person> Persons { get; set; }
public DbSet<Car> Cars { get; set; }
public TestContext(string connectionString) : base(connectionString)
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Car>()
.HasOptional(x => x.Person)
.WithMany()
.HasForeignKey(x => x.PPPPP)
.WillCascadeOnDelete(true);
base.OnModelCreating(modelBuilder);
}
}
나는 PPPPP에 외래 키 PersonId의 이름을 변경합니다.
modelBuilder.Entity<Car>()
.HasOptional(x => x.Person)
.WithMany()
.HasForeignKey(x => x.PPPPP)
.WillCascadeOnDelete(true);
을하지만 내 관계는 제로에 하나이며 나는 WithMany 방법을 사용하여 실수 할 두려워하지만, EF 적절한 매핑으로 데이터베이스를 생성하고, 모든 것이 잘 작동 : 내지도에서 나는 말한다.
내가 Fluent API 코드에 잘못되었거나 지금처럼 좋은 방법이 있다고 말하십시오.
도움 주셔서 감사합니다.
답변 주셔서 감사합니다. – patryko88
Fluent API의 WithMany() 부분을 "일대일 (1 또는 0)"관계로 어떻게 만들 수 있습니까? @ patryko88 당신이 원하는대로 일하도록 코드를 얻었습니까? 그렇다면 답을 게시 할 수 있습니까? 감사! –
@BrianBehm EF를 사용하면 공유 PK 매핑이있는 경우에만 일대일 관계의 양쪽에서 탐색 속성을 사용할 수 있습니다. collection 속성을 생략함으로써 관계는 like_look-one-to-one으로 보입니다. – Eranga