自从在nopcommerce中创建数据库以来,支持'ObjectContext'上下文的模型已发生变化

时间:2013-10-21 10:26:46

标签: 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'上下文的模型发生了变化”

我不明白为什么会发生这种错误以及从何处发生。

有人可以帮我解决这个问题吗?

接受所有答案。

感谢您的期待。

1 个答案:

答案 0 :(得分:2)

我一直有同样的问题。在我们的例子中,我们基于现有数据库反向设计了代码优先设计。新数据库正在对其设计进行改进。

通常在修改数据库结构时,我会删除数据库,然后通过代码重新生成它。

这一切都非常好,直到您开始迁移数据,然后更改结构(所有仍在开发中)

因此,在开发过程中,丢弃/重新创建会成为巨大的痛苦。

我为解决此问题所做的只是删除由代码优先实现创建的表dbo.__MigrationHistory中的条目。这一行包含模型的散列版本,正如我的理解所做的那样,当您启动应用程序时,会检查该行。

可能或者可能不是正确的做法,但在开发过程中对我来说是有意义的:)