微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐