【发布时间】:2014-04-30 15:12:44
【问题描述】:
首先,正如您在标题中看到的那样,我正在为 nopCommerce 设计一个插件。我相信问题与它无关(但与实体框架有关),但我不太确定。
我的插件可以访问数据,nopCommerce 让我创建自己的上下文,创建所需的表和关系。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new ParentMap());
modelBuilder.Configurations.Add(new ChildMap());
}
从概念上讲,我想要的是:
ROOT TABLE ----(1:N)---- CHILDTABLE ----(1:1)---- EXISTING NOPCOMMERCE TABLE
在数据库中创建的表和列对我来说似乎是正确的。映射非常简单:
public ParentMap()
{
ToTable("TableA");
HasKey(m => m.Id);
Property(m => m.SomeProperty);
HasMany(m => m.Child).WithRequired(s => s.Parent).WillCascadeOnDelete();
}
public ChildMap()
{
ToTable("TableB");
HasKey(m => new { m.Id });
HasRequired(m => m.NopCommerceEntity);
HasRequired(m => m.Parent);
}
到此为止,一切似乎都运行良好,注册完毕,应用程序启动。当我尝试插入或更新与 nopCommerce 实体相关的任何内容时,出现以下异常:
“元数据集合中不存在身份为“Namespace.ChildObject_NopCommerceEntity”的成员。\r\n参数名称:身份”。
我一直认为问题可能与我没有在 OnModelCreating 中添加其他映射有关。我试图在那里添加所有相关的映射,但我得到了同样的异常。
这有点复杂。非常感谢您的帮助和时间:)
【问题讨论】:
标签: entity-framework nopcommerce