Я хочу сопоставить необязательное отношение 1-к-1 в существующей базе данных с EF Code First.
Простая схема:
User
Username
ContactID
Contact
ID
Name
Очевидно, что ContactID присоединяется к Contact.ID. Поле ContactID имеет значение NULL, поэтому связь необязательна - 0 или 1, но не много.
Так как мне указать это отношение в EF Code First с этой существующей схемой?
Вот что я пробовал до сих пор:
public class User
{
[Key]
public string Username { get; set; }
public int? ContactID { get; set; }
[ForeignKey("ContactID")]
public virtual Contact Contact { get; set; }
}
public class Contact
{
[Key]
public int ID { get; set; }
public string Name { get; set; }
public virtual User User { get; set; }
}
modelBuilder.Entity<User>().HasOptional<Contact>(u=> u.Contact)
.WithOptionalDependent(c => c.User);
Я получаю следующее исключение:
System.Data.Edm.EdmAssociationEnd: : Multiplicity is not valid in Role
'User_Contact_Source' in relationship 'User_Contact'. Because the Dependent
Role properties are not the key properties, the upper bound of the multiplicity
of the Dependent Role must be *.