외래 키가 null 일 수있는 EF에서 일대일 관계를 만들려고합니다 (따라서 0..1에서 0..1로 호출 할 수 있음)nullable 외래 키와 일대일 관계
public class ProductInstance
{
public int Id { get; set; }
public int SaleId { get; set; }
public Sale Sale { get; set; }
}
public class Sale
{
public int Id { get; set; }
public ProductInstance ProductInstance { get; set; }
}
FluentAPI
구성 :
modelBuilder.Entity<Sale>()
.HasOptional(x => x.ProductInstance)
.WithOptionalPrincipal(x => x.Sale);
그러나 테이블 ProductInstance
에 두 개의 열을 발생입니다 :
Sale_id
- 외래 키SaleId
여기에서 생성 된 마이그레이션 코드 :
CreateTable(
"dbo.ProductInstances",
c => new
{
Id = c.Int(nullable: false, identity: true),
SaleId = c.Int(nullable: false),
Sale_Id = c.Int(),
})
.PrimaryKey(t => t.Id)
.ForeignKey("dbo.Sales", t => t.Sale_Id)
.Index(t => t.Sale_Id);
어떻게 외국 열쇠가 될 것입니다 하나 개의 컬럼 만 SaleId
을 얻기 위해 무엇을 할 수 있는가?
하는 Sale 인스턴스의 ID를 보유하고 있습니까? 그것이 테이블에 2 개의 열이 생성되는 이유입니다. –
EF는 Entity Framework의 약자이므로 데이터 개체가 값 개체가 아닌 개체로만 작동합니다. 아마 후자의 버전에서도 value 객체를 지원할 것입니다. – Mohamadreza