我有这个问题,我在插入子记录,在数据库中导航栏是null
,而不是引用父Id
。
我该如何解决这个问题?
AdminConfiguration
表
模型
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; }
}
插入代码
public ApplicationConfiguration Insert(ApplicationConfiguration entity)
{
Db.ApplicationConfiguration.Add(entity);
Db.SaveChanges();
return entity;
}
插入后DB的样子:
ID | Other columns | AdminConfiguration_Id
1 | Other values | NULL
答案 0 :(得分:3)
您需要在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
列,这些列将映射到您班级的属性。