实体框架插入子记录与父知道
本文关键字:记录 框架 插入 实体 | 更新日期: 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
列,将映射到您的类的属性。