c# - 自从在 nopcommerce 中创建数据库以来,支持 'ObjectContext' 上下文的模型已更改

标签 c# nopcommerce

我正在 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/

相关文章:

c# - Dotnet core无法区分具有相同名称但不同参数的操作?

c# - 使用装饰器设计模式时的一个问题

sql-server - nopCommerce:数据库不存在或您无权连接到该数据库

git - 从 Mercurial 迁移到 Git 并与自定义更改 merge

nopcommerce - nopCommerce 有日志文件吗?如果是,它存储在什么位置?

css - 2.3 Nopcommerce 主题更新到3.0了?

c# - 如何在我的 NopCommerce 网站主页中使用垂直 slider ?

c# - `ICommand.CanExecuteChanged`应该如何实现?

C# 字典 : making the Key case-insensitive through declarations

c# - 没有对 MSysObject 错误的读取权限