如果其中一个实体未引用另一个实体,如何在EF Core中配置一对一关系?

问题描述 投票:0回答:1

所以问题是我有两个实体,其中一个实体在另一个库中,所以我无法对其进行修改。我的模型包含(具有关系)来自另一个库的该模型。我想配置它们之间的一对一关系。

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; }
}

因此,我用问题搜索了Google,甚至在stackoverflow上进行搜索,甚至发现了same question,但没有任何答案可以使我满意。因为我需要的是一对一关系without将UserInfo属性添加到User类,因为我不能这样做,因为该类来自另一个库。我尝试了不同的方法,但是没有一个起作用,所以我想在这里不再描述所有方法,因为这需要大量的文本。

c# entity-framework entity-framework-core dbcontext one-to-one
1个回答
1
投票

我找到了解决方法:

放置此

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

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

在dbcontext类中的OnModelCreating方法内部(不要忘记调用base.OnModelCreating)

© www.soinside.com 2019 - 2024. All rights reserved.