在对数据库进行逆向工程之后,生成模型/ 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
答案 0 :(得分:0)
前几天我解决了我的问题!几乎忘了在这里更新它。我无法告诉你确切的原因,但是&#34; ICollection &#34;上课是个问题。通过将其更改为 IList 容器,我的所有问题都会消失。现在如果有人能解释为什么会这样,我会很高兴,因为这对我来说是一个冰雹玛丽。
再次感谢帮助人员。