我在Nopcommerce中创建了一个插件,并使用我的插件创建了一个数据库表。
在该插件中我使用了 GetListByProductId(int id)&服务中的InsertItem(Item item)方法。
我已经实现了以下这些方法:
public void InsertItem(itemList item)
{
if (item == null)
{
throw new ArgumentNullException("itemlist");
}
//Persist
_itemlistRepository.Insert(item);
}
public virtual ItemList GetListByProductid(int ProductId)
{
if (ProductId <= 0) return null;
return _itemlistRepository.GetById(ProductId);
}
但是我收到了错误,“自创建数据库以来,支持'ItemObjectContext'上下文的模型发生了变化”。
我不明白为什么会发生这种错误以及从何处发生。
有人可以帮我解决这个问题吗?
接受所有答案。
感谢您的期待。
答案 0 :(得分:2)
我一直有同样的问题。在我们的例子中,我们基于现有数据库反向设计了代码优先设计。新数据库正在对其设计进行改进。
通常在修改数据库结构时,我会删除数据库,然后通过代码重新生成它。
这一切都非常好,直到您开始迁移数据,然后更改结构(所有仍在开发中)
因此,在开发过程中,丢弃/重新创建会成为巨大的痛苦。
我为解决此问题所做的只是删除由代码优先实现创建的表dbo.__MigrationHistory
中的条目。这一行包含模型的散列版本,正如我的理解所做的那样,当您启动应用程序时,会检查该行。
可能或者可能不是正确的做法,但在开发过程中对我来说是有意义的:)