实体框架插入子记录与父知道

本文关键字:记录 框架 插入 实体 | 更新日期: 2023-09-27 18:08:59

我有这个问题,我正在插入一个子记录,并在数据库中导航列是null,而不是引用父母Id

我该如何解决这个问题?

AdminConfiguration表中只有1条记录

public class AdminConfiguration : Entity
{
    public virtual List<ApplicationConfiguration> ApplicationConfiguration { get; set; }
}

public class ApplicationConfiguration : Entity
{
    public Applications Application { get; set; }
    public string ApiKey { get; set; }
    public string IpAddress { get; set; }
    public int Port { get; set; }
    public string HttpScheme { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }
}
<<p> 插入代码/strong>
public ApplicationConfiguration Insert(ApplicationConfiguration entity)
{
    Db.ApplicationConfiguration.Add(entity);
    Db.SaveChanges();
    return entity;
}

插入后的数据库:

ID | Other columns | AdminConfiguration_Id
1  | Other values  | NULL

实体框架插入子记录与父知道

您需要在ApplicationConfiguration实体上有一个适当的导航属性,以便EF可以映射关系,我个人还会创建一个外键属性,如下所示,因为通常只指定相关的实体ID比填充导航属性更容易。

public class ApplicationConfiguration : Entity
{
    public Applications Application { get; set; }
    public string ApiKey { get; set; }
    public string IpAddress { get; set; }
    public int Port { get; set; }
    public string HttpScheme { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }
    public virtual AdminConfiguration AdminConfiguration { get; set; }
    [ForeignKey("AdminConfiguration")]
    public int AdminConfigurationId { get; set; }
}

这将摆脱AdminConfiguration_Id列,而是创建一个AdminConfigurationId列,将映射到您的类的属性。