[英]Foreign Key creation in EF Core code first
我有2个型号:
public class GaOrgOrders
{
public virtual Guid Id { get; set; }
[ForeignKey("GaOrganizations")]
public virtual Guid OrgId { get; set; }
[ForeignKey("GaApps")]
public virtual Guid AppId { get; set; }
[ForeignKey("GaOrgUserOrganizations")]
public virtual Guid OrgUserId { get; set; }
[ForeignKey("GaServicesTariffs")]
public virtual Guid ServiceTariffId { get; set; }
public virtual bool IsTemporary { get; set; }
public virtual Apps GaApps { get; set; }
public virtual Organizations GaOrganizations { get; set; }
public virtual OrgUserOrganizations GaOrgUserOrganizations { get; set; }
public virtual GaServicesTariffs GaServicesTariffs { get; set; }
}
和
public class GaOrganizations
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual bool IsDeleted { get; set; }
}
当我尝试更新数据库并添加这些表时,出现错误:
在表“ GaOrgOrders”上引入FOREIGN KEY约束“ FK_GaOrgOrders_GaOrganizations_OrgId”可能会导致循环或多个级联路径。 指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。 无法创建约束或索引。 请参阅先前的错误。
如果我从OrgId属性中删除“ ForeignKey”属性-错误消失了,但它在数据库中创建了第二个字段(GaOrganizationsId)并将其设置为FK。 其他键工作正常。 OrgId怎么了?
EF无法理解两个实体之间的关系,因此您可能需要在“ OnModelCreating”方法中使用流利的API进行澄清。
使用类似
modelBuilder.Entity<ClassB>().HasRequired(x => x.ClassA).WithOptional(x => x.ClassB);
其中ClassA和ClassB是我的实体,它们之间具有1到0或1的关系。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.