sql >> Database teknologi >  >> RDS >> Sqlserver

Et-til-én-forhold med forskellige primære nøgler i EF 6.1-koden først

one-to-one forhold til eksplicit FK-ejendom (som din PayGroup.SupervisorId ) er ikke understøttet.

Så fjern den egenskab fra modellen:

public class PayGroup
{
    public int Id { get; set; }
    public virtual Employee Supervisor { get; set; }
}

og brug følgende flydende kortlægning:

modelBuilder.Entity<PayGroup>()
    .HasRequired(e => e.Supervisor)
    .WithOptional()
    .Map(m => m.MapKey("SupervisorId"));

WithOptional() call specificerer to ting. For det første er der ingen omvendt navigationsegenskab i Employee klasse, og for det andet at FK er valgfri (Allow Nulls = true i tabellen).

Hvis du beslutter dig for at tilføje omvendt navigationsegenskab

public class Employee
{
    public string EmployeeId { get; set; }
    public string FullName { get; set; }
    public virtual PayGroup PayGroup { get; set; } // <=
}

ændre det til WithOptional(e => e.PayGroup) .

Hvis du vil gøre det påkrævet (Allow Nulls = false i tabellen), og brug derefter den tilsvarende WithRequiredDependent overbelastning (Afhængig betyder her, at Employee vil være rektor og PayGroup vil være den afhængige ).




  1. Anvend ORDER BY på en UNION (Mysql)

  2. hvordan man vælger to kolonner fra to tabeller i mysql

  3. Dimensioner af dimensioner:Et kig på Data Warehousings mest almindelige dimensionelle tabeltyper

  4. MySQL-kommando til at søge i CSV (eller lignende array)