我有2个表,Products(我的基础)和OffShelfItems(由孩子)
我在ID字段上设置了外键,以下是此设置的屏幕截图:
在我的EDMX中,我导入了表并将OffShelfItem设置为产品类的成员,以下是该设置的屏幕截图:
但是,当我尝试使用此测试代码保存对象时:
OffShelfItem osi = new OffShelfItem();
osi.WhenAdded = DateTime.Now;
osi.LastModified = DateTime.Now;
osi.IsDeleted = false;
osi.Title = "TEST ITEM";
osi.RetailPrice = 9.99M;
osi.DealerPrice = 7.99M;
ent.Products.Add(osi);
ent.SaveChanges();
我收到此错误:
指定的架构无效。错误:App_Code.Model.ssdl(75,6): 错误0113:多重性在角色'AA_OffShelfItems'中无效 关系'FK_AA_OffShelfItems_AA_Products'。因为依赖 角色是指关键属性,即多重性的上限 依赖角色必须为1。
我觉得我必须非常接近让这个工作,我只需要帮助到达那里!
答案 0 :(得分:1)
id
必须是AA_OffShelfItems
表上的主键。
这里的解释很好:
[UPDATE:]
然后,您可以按照以下答案中的说明扩展您的上下文来访问OffShelfItems
:
EF Database First with TPT Inheritance only creates DbSet<T> for base clases
有类似的东西:
context.Products.OfType<OffShelfItem>()
或:
partial class Context
{
public DbSet<OffShelfItem> OffShelfItem{ get; set; }
}