我正在 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’上下文的模型自数据库创建以来已更改”。
我不明白为什么会发生此错误以及从何处发生。
谁能帮我解决这个问题?
接受所有答案。
感谢期待。
最佳答案
我也遇到了同样的问题。在我们的案例中,我们基于现有数据库对代码优先设计进行了逆向工程。新数据库正在对其设计进行改进。
通常在修改数据库结构时,我会删除数据库,然后让代码重新生成它。
这一切都非常好,直到您开始迁移数据,然后再稍微更改结构(一切仍在开发中)
因此删除/重新创建成为开发过程中的巨大痛苦。
我为解决此问题所做的只是删除表 dbo.__MigrationHistory
中由代码优先实现创建的条目。此行包含模型的散列版本,据我所知,这是在您启动应用程序时检查的内容。
可能是也可能不是正确的做法,尽管在开发过程中这对我来说很有意义:)
关于c# - 自从在 nopcommerce 中创建数据库以来,支持 'ObjectContext' 上下文的模型已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19491991/