NopCommerce添加新表 - 无效的列名'Product_Id1'

时间:2014-10-04 12:13:22

标签: c# asp.net-mvc nopcommerce

我想在mycommerce引擎中添加一个新表;

关系

[Product] 1..* [Awards]

代码文件:

public partial class Awards : BaseEntity, ILocalizedEntity
{
    public virtual Product Product { get; set; }

    public string AwardDescription { get; set; }
    public Guid AwardGUID { get; set; }
    public int Product_Id { get; set; }
}

public partial class AwardsMap : EntityTypeConfiguration<Awards>
{
    public AwardsMap()
    {
        this.ToTable("Awards");
        this.HasKey(p => p.Id);

        this.Property(p => p.AwardGUID).IsOptional();
        this.Property(p => p.AwardDescription).IsOptional();

        this.HasRequired(p => p.Product)
            .WithMany(pt => pt.ProductAwards)
            .Map(m => m.ToTable("Awards"));
    }
}


public partial interface IAwardsService
{
    void DeleteAwards(Awards Awards);
    IList<Awards> GetAllAwardss();
    Awards GetAwardsById(int AwardsId);
    void InsertAwards(Awards Awards);
    void UpdateAwards(Awards Awards);
}

以及实现AwardsService.cs接口的IAwardsService类(与ProductTagService.cs相同的方式)

Product.cs代码段:

private ICollection<Awards> _awards;
public virtual ICollection<Awards> ProductAwards
{
    get { return _awards ?? (_awards = new List<Awards>()); }
    protected set { _awards = value; }
}

但每次我从数据库加载产品并尝试加载ProductAwards proparte时我都会收到错误

Invalid column name 'Product_Id1'.
Invalid column name 'Product_Id1'.

发生了什么事?

修改

我看到了Customer, CustomerAddress, Address表,我修改了我的类看起来和那些类似,现在它正在工作。

2 个答案:

答案 0 :(得分:1)

请检查映射表是否与您班级中定义的列名完全相同。

此处看起来像冲突,因为它的投掷错误无效列名称“Product_Id1”和您班级中的属性名称为Product_Id

答案 1 :(得分:1)

在AwardsMap中:

替换它:

this.HasRequired(p => p.Product)
            .WithMany(pt => pt.ProductAwards)
            .Map(m => m.ToTable("Awards"));

用这个:

this.HasRequired(p => p.Product)
            .WithMany(pt => pt.ProductAwards)
            .HasForeignKey(p => p.Product_Id);