【发布时间】:2015-10-05 21:34:44
【问题描述】:
我想增加一些额外的礼仪,我尝试了以下方法:
基表:
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”类型的实例都具有相同的主键 值,'EntitySet=Items;ItemId=1097'。
有什么办法可以解决这个问题吗?
提前致谢
【问题讨论】: