【发布时间】:2015-05-06 10:00:15
【问题描述】:
我正在尝试使用 Code First 创建一些表。这是我的代码:
public class Country
{
[Key]
public int Id { get; set; }
public string CountryName { get; set; }
}
public class State
{
[Key]
public int Id { get; set; }
public string StateName { get; set; }
public int CountryId { get; set; }
public Country Country { get; set; }
}
public class Customer
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public int CountryId { get; set; }
public int StateId { get; set; }
public virtual Country Country { get; set; }
public virtual State State { get; set; }
}
public class ProductContext : DbContext
{
public DbSet<Country> Country { get; set; }
public DbSet<Customer> Customer { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
当我执行此代码时,会出现以下错误:
引入 FOREIGN KEY 约束 表 'State' 上的 'FK_dbo.State_dbo.Country_CountryId' 可能会导致循环 或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。无法创建 约束。查看以前的错误。
但我希望状态表中的 CountryId 是外键。我在这里想念什么?谁能指导我实现这一目标的正确方法?
【问题讨论】:
标签: entity-framework