0

我正在尝试映射这些实体:

 [Table("AAN_DigitalLib_Asset")]
    public class Asset
    {
    [Column("ID")]
    public int ID { get; set; }

    [Column("format_id")]
    public int FormatID { get; set; }

    [Column("person_id")]
    public int? PersonID { get; set; }

    [Column("publicationYear")]
    public int? PublicationYear { get; set; }

    public Person People { get; set; }

    //public virtual AssetKeyword AssetKeywords { get; set; }

    public virtual ICollection<AssetKeyword> AssetKeywords { get; set; }
}

使用这些实体:

[Table("AAN_DigitalLib_AssetKeyword")]
    public class AssetKeyword
    {
        [Column("ID")]
        public int ID { get; set; }

        [Column("asset_id")]
        public int AssetID { get; set; }

        [Column("keyword")]
        public string Keyword { get; set; }
    }

一个Asset可以有很多的地方AssetKeywords。数据库中没有指定关系,那么如何使用 Fluent API 创建一个关系?

4

1 回答 1

1

是否添加

[ForeignKey("AssetID")]
public virtual Asset Asset { get; set; }

对你的 AssetKeyword 类进行修复吗?

如果那不这样做,那么在你的 onModelCreating()

modelBuilder.Entity<AssetKeyword>()
                    .HasRequired(p => p.Asset)
                    .WithMany()
                    .HasForeignKey(p => p.AssetID);
于 2012-12-13T15:30:21.743 回答