HasOptional не возвращает объект отношений? - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь создать приложение, используя Asp. Net MVC и Entity Framework. В этом приложении у меня есть один пользователь, у которого есть один пакет, и для установления связи между ними я использовал HasOptional, но когда я пытаюсь найти пользователя, пакет не возвращается вместе с пользователем.

Почему это происходит и как мне это исправить?

Пользователь

public class User
{

    public long id { get; set; }
    public Package package {get;set;}

Пакет

public class Package
{
        public int id  { get; set; }
        public String name {get;set;}

Карта

public class UserMap : EntityTypeConfiguration<User>{
    public UserMap(){
        this.ToTable("Users");
        this.HasKey<long>(u => u.id);

        this.HasOptional<Package>(u => u.package);
    }
}

Использование

//it should to return the Package too but still doesn't
User user = context.users.FirstOrDefault(u => u.id == userSession.id);

Debug.writeLine("Package is null: " + user.package == null); //it is returning true

1 Ответ

0 голосов
/ 17 января 2020

Один-к-одному в EF6.x настраивается следующим образом:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<User>()
        .HasOptional(p => p.package)
        .WithRequired();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...