EF 6 MVC 5无效的列名称

时间:2014-08-20 18:07:10

标签: asp.net-mvc entity-framework

在对数据库进行逆向工程之后,生成模型/ mapping / dbcontext一切都很好,直到我实际添加了一些东西。这是我的模特。

public partial class Vendor
{
    public Vendor()
    {
        this.VendorToSuppliesAndServices = new List<VendorToSuppliesAndService>();
    }

    public int VendorID { get; set; }
    public virtual ICollection<VendorToSuppliesAndService> VendorToSuppliesAndServices { get; set; }

}

VendorToSuppliesAndService

    public partial class VendorToSuppliesAndService
    {
        public int Id { get; set; }
        [ForeignKey("Vendor")]
        public int VendorID { get; set; }
        public string OtherInfo { get; set; }
        public virtual Vendor Vendor { get; set; }
    }

这是VendorToSuppliesAndServiceMap构造函数

        // Primary Key
        this.HasKey(t => t.Id);

        // Properties
        this.Property(t => t.OtherInfo)
            .HasMaxLength(1300);

        // Table & Column Mappings
        this.ToTable("VendorToSuppliesAndServices");
        this.Property(t => t.Id).HasColumnName("Id");
        this.Property(t => t.VendorID).HasColumnName("VendorID");
        this.Property(t => t.OtherInfo).HasColumnName("OtherInfo");

        // Relationships
        this.HasRequired(t => t.Vendor)
            .WithMany(t => t.VendorToSuppliesAndServices)
            .HasForeignKey(d => d.VendorID);

现在问题是当我添加时。

   Vendor vendor = ....
   VendorToSuppliesAndService service = ....
   vendor.VendorToSuppliesAndServices.add(service);
   context.Vendors.Add(vendor);
   context.SaveChanges();

这就是问题,应该注意没有

   VendorToSuppliesAndService service = ....
   vendor.VendorToSuppliesAndServices.add(service);

问题消失了。

这是堆栈跟踪:

    [SqlException (0x80131904): Invalid column name 'Vendor_VendorID'.]
          System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +1767866

1 个答案:

答案 0 :(得分:0)

前几天我解决了我的问题!几乎忘了在这里更新它。我无法告诉你确切的原因,但是&#34; ICollection &#34;上课是个问题。通过将其更改为 IList 容器,我的所有问题都会消失。现在如果有人能解释为什么会这样,我会很高兴,因为这对我来说是一个冰雹玛丽。

再次感谢帮助人员。