ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-07-10 03:08:50  阅读:244  来源: 互联网

标签:c entity-framework entity code-first


我首次在生产环境中使用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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有