Как выполнить (обнуляемое) отношение «один к нулю» или одно в Entity Framework в сочетании со свойством entityID? - PullRequest
1 голос
/ 06 ноября 2011

Я чувствую себя глупо, спрашивая об этом, но я просто не могу понять, как создать отношения «один к нулю» или «одно», давая свойства entityID и entity.

Возьмите следующеепример:

public class base
{
public int ID {get;set;}
}

public class linked
{
public int ID {get;set;}
public string test {get;set;}
}

Если я добавлю public virtual linked linked {get;set;} в базовый класс, все будет работать как положено, я получу обнуляемое отношение 1 к 0 или 1.

Однако я понимаю преимуществаиспользования только int / EntityID для хранения отношения в сочетании с виртуальным для отложенной загрузки (например, public int linkedID {get;set;} в сочетании с виртуальным, описанным выше), но я не могу понять, как создать это, используя тот жеотношения.

Я пытался использовать свободный API Entity<base>().HasOptional(x=>x.linked).WithRequired(), что, как я думал, должно быть, и это создает отношение от 0 до 0 или 1, но оно не допускает обнуления, чего я не делаюпонять, учитывая HasOptional.

Я думал, что повернул за угол в понимании Entity Framework, но это действительно отбросило меня назад!Я не могу понять, где я иду не так.Может кто-нибудь, пожалуйста, помогите?

1 Ответ

2 голосов
/ 06 ноября 2011

Попробуйте использовать

public int? linkedID {get;set;}

Int, который вы используете, не имеет значения nullable, поэтому по умолчанию он равен 0.

...