如何使用实体框架中的视图扩展表

时间:2015-07-16 12:30:01

标签: asp.net entity-framework

我想要添加一些额外的礼节,我尝试了以下内容:

基准表:

namespace Core.Model {

public class Item
{
    [Key]
    public int ItemId { get; set; }

    [Required]
    public ItemType Type { get; set; }

    [Required]
    [MaxLength(255)]
    public string Name { get; set; } 
    //...
}
}

扩展视图:

namespace Core.Model
{

    public class ItemExtended : Item
    {
        public int? CommentsCount { get; set; }
    }
}

然后在上下文中我有:

public DbSet<QuiverItemExtended> ItemsExtended { get; set; }

modelBuilder.Entity<ItemExtended>()
    .ToTable("ItemsExtended")
    .HasKey(view => new { view.ItemId });

这适用于查询,但是当我尝试插入普通项时,我得到了这个例外:

  

EntitySet'Context.Items'中的所有对象必须具有唯一的主要对象   键。但是,“Core.Model.ItemExtended”类型的实例和   “Core.Model.Item”类型的实例都具有相同的主键   value,'EntitySet = Items; ItemId = 1097'。

任何想法我如何解决这个问题?

提前致谢

1 个答案:

答案 0 :(得分:0)