C# mvc 5中的“{”无效列名'Supplier_Address_Address_ID'。”}
我得到了上面的信息,我可以看到错误在哪里,这里是代码,我是MVC新手,请帮助 {列名称“供应商地址地址ID”无效。}C# mvc 5中的“{”无效列名'Supplier_Address_Address_ID'。”},c#,entity-framework,C#,Entity Framework,我得到了上面的信息,我可以看到错误在哪里,这里是代码,我是MVC新手,请帮助 {列名称“供应商地址地址ID”无效。} public class Supplier { [Key] public int SupplierID { get; set; } //[Required] //[StringLength(20, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLeng
public class Supplier
{
[Key]
public int SupplierID { get; set; }
//[Required]
//[StringLength(20, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 2)]
[Required(ErrorMessage = "Company Name is required")]
[DisplayName("Company Name ")]
public string Company_Name { get; set; }
[Required(ErrorMessage = "First Name is required")]
[DisplayName("First Name")]
public string Supplier_Name { get; set; }
[Required(ErrorMessage = "Surname Name is required")]
[DisplayName("Surname Name")]
public string Supplier_Last { get; set; }
[DisplayName("Title")]
public string Title { get; set; }
[DisplayName("Address")]
//[ForeignKey("Address_ID")]
public int? Address_ID { get; set; }
[DisplayName("Contact")]
public int? Details_ID { get; set; }
[Display(Name = "Full Name")]
public string FullName
{
get
{
return Supplier_Name + ", " + Supplier_Last;
}
}
public virtual Supplier_Address Supplier_Address { get; set; }
}
public class Supplier_Address
{
// [ForeignKey("Supplier")]
[Key]
public int Address_ID { get; set; }
[Required(ErrorMessage = "Address Name is required")]
[DisplayName("Address")]
public string Address_1 { get; set; }
[DisplayName(" ")]
public string Address_2 { get; set; }
[Required(ErrorMessage = "Country is required")]
public string Country { get; set; }
[Required(ErrorMessage = "City is required")]
public string City { get; set; }
[Required(ErrorMessage = "State is required")]
public string State { get; set; }
[Required(ErrorMessage = "Pcode is required")]
public int? Pcode { get; set; }
public virtual Supplier Supplier { get; set; }
}
这是我的控制器
public DbSet<Supplier> Suppliers { get; set; }
public DbSet<Supplier_Address> Supplier_Addresses { get; set; }
protected override void OnModelCreating(DbModelBuilder modeBuilder)
{
// this the Suppler and Address
modeBuilder.Entity<Supplier>()
.HasOptional(s => s.Supplier_Address)
.WithMany();
modeBuilder.Conventions.Remove<PluralizingTableNameConvention>();
base.OnModelCreating(modeBuilder);
这是错误消息:
{列名称“供应商地址地址ID”无效。}
public class Supplier
{
[Key]
public int SupplierID { get; set; }
//[Required]
//[StringLength(20, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 2)]
[Required(ErrorMessage = "Company Name is required")]
[DisplayName("Company Name ")]
public string Company_Name { get; set; }
[Required(ErrorMessage = "First Name is required")]
[DisplayName("First Name")]
public string Supplier_Name { get; set; }
[Required(ErrorMessage = "Surname Name is required")]
[DisplayName("Surname Name")]
public string Supplier_Last { get; set; }
[DisplayName("Title")]
public string Title { get; set; }
[DisplayName("Address")]
//[ForeignKey("Address_ID")]
public int? Address_ID { get; set; }
[DisplayName("Contact")]
public int? Details_ID { get; set; }
[Display(Name = "Full Name")]
public string FullName
{
get
{
return Supplier_Name + ", " + Supplier_Last;
}
}
public virtual Supplier_Address Supplier_Address { get; set; }
}
public class Supplier_Address
{
// [ForeignKey("Supplier")]
[Key]
public int Address_ID { get; set; }
[Required(ErrorMessage = "Address Name is required")]
[DisplayName("Address")]
public string Address_1 { get; set; }
[DisplayName(" ")]
public string Address_2 { get; set; }
[Required(ErrorMessage = "Country is required")]
public string Country { get; set; }
[Required(ErrorMessage = "City is required")]
public string City { get; set; }
[Required(ErrorMessage = "State is required")]
public string State { get; set; }
[Required(ErrorMessage = "Pcode is required")]
public int? Pcode { get; set; }
public virtual Supplier Supplier { get; set; }
}
这是一个实体框架问题 EntityFramework默认代码第一个db生成非常受约定驱动。您应该将ForeignKey与引用对象一起保存,并且应该将相应的Id作为Id提及
[DisplayName("Address_ID")]
public int? Address_ID { get; set; }
public virtual Supplier_Address Supplier_Address { get; set; }
有了这个特别的改变,我可以让事情正常进行,并生成了表 ForeignKey属性值应为属性名称的Supplier\u Address,而不是Address\u ID。此外,Supplier\u Address应包含Supplier\u ID,以便可以向后遍历。