Как заставить работать Entity Framework Code First и свойства внешнего ключа, допускающие значение NULL?

Я пытаюсь создать сначала приложение с кодом простой структуры сущностей. У меня есть следующие классы:

public class User
{
    public int UserId { get; set; }

    public string Username { get; set; }

    public virtual ActivationTicket ActivationTicket { get; set; }
}

public class ActivationTicket
{
    public int ActivationTicketId { get; set; }

    public virtual User User { get; set; }

    public string Ticket { get; set; }
}

Когда я пытаюсь создать нового пользователя и сохранить его в базе данных (пользователь без ActivationTicket), я получаю исключение

Оператор INSERT противоречит ограничению FOREIGN KEY "ActivationTicket_User" . Конфликт произошел в базе данных «Тест», таблица «dbo.ActivatioTickets», столбец «ActivationTicketId». Оператор был прерван.

Я предполагаю, что EF рассматривает сопоставление между User и ActivationTicket как 1-1, но оно должно быть 1-0..1

Что мне нужно сделать, чтобы это работало?

10
задан abatishchev 20 December 2011 в 20:19
поделиться