Как настроить отношение один-к-одному в EF Core, если один из объектов не ссылается на другой? - PullRequest
0 голосов
/ 26 октября 2019

Итак, проблема в том, что у меня есть две сущности, одна из которых находится в другой библиотеке, поэтому я не могу ее изменить. И моя модель содержит (имеет отношения) эту модель из другой библиотеки. Я хочу настроить отношения один-к-одному между ними.

public class UserInfo
{      
    public User User { get; set; } 

    public bool IsVerified { get; set; }

    public DateTime? UtcVerifyDate { get; set; }
}

// model from library
public class User : IEquatable<User>
{
    public int Id { get; set; }

    public bool IsBot { get; set; }

    public string FirstName { get; set; }

    public string LastName { get; set; }

    public string Username { get; set; }

    public string LanguageCode { get; set; }
}

Так что я гуглил вопрос и даже искал в stackoverflow и даже нашел тот же вопрос , но нет ответа, который бы удовлетворялменя. Потому что мне нужно отношение один-к-одному без , добавляющее свойство UserInfo в класс User, потому что я не могу этого сделать, так как этот класс из другой библиотеки. Я пробовал разные подходы, но ни один из них не работал, поэтому я не буду описывать их все здесь, потому что для этого потребуется большой объем текста.

1 Ответ

1 голос
/ 26 октября 2019

Я нашел решение:

Поместите это

blder.Entity<UserInfo>()
     .HasOne(i => i.User)
     .WithOne();

blder.Entity<UserInfo>()
     .HasKey(i => i.UserId);

Внутри вашего метода OnModelCreating в классе dbcontext (не забудьте вызвать base.OnModelCreating)

...