编程语言
首页 > 编程语言> > c# – 如何获取实体框架以实现模型和DB同步

c# – 如何获取实体框架以实现模型和DB同步

作者:互联网

我首次在生产环境中使用Entity Framework代码.一切顺利,直到我们得到DB并将一些数据放入其中然后获取我们从另一个位置导入的一些数据,我们不得不改变字段长度.所以我们创建了一些字段nvarchar(99)而不是nvarchar(50).

这很好,应用程序仍然有效,但我知道我需要更改数据注释,否则它会在加载后试图保存太长的字段.当我这样做时,即使模型和数据库现在匹配,应用程序也会爆炸.所以我认为这是元数据表中的哈希所以我认为我会聪明并创建一个新数据库并从那里获取哈希并复制它.这不起作用,事实上现在我无法让我的应用程序连接到我们有数据加载的测试数据库.

我不想删除并重新创建此数据库.我希望实体框架能够实现模型和模式实际上匹配.我有什么方法可以做到这一点吗?另外,为什么从数据库中复制元数据,使用此模型创建的实体框架不起作用?

解决方法:

实体框架代码首先创建一个EdmMetadata表,并在其中保存Model类的哈希值.当您在模型中更改某些内容时,新模型类的哈希值不再与EdmMetadata表中的内容相匹配,并且应用程序应该在运行时“爆炸”.在不丢弃数据库的情况下继续使用同一数据库需要做的是删除EdmMetadata表.这样EF就不会进行检查,并会尝试继续访问数据库.

检查此video tutorial(跳到“当更改类时”部分的8:10).

标签:c,entity-framework,entity,code-first
来源: https://codeday.me/bug/20190710/1419733.html