首页 / 知识
关于.net:在Entity Framework中更新数据库架构
2023-04-12 06:37:00

Update database schema in Entity Framework我安装了VS SP1,并使用Entity Framework。 我从现有数据库创建了一个架构,并尝试了一些基本操作。 除数据库架构更新外,其余大多数都运行良好。 我以各种基本方式更改了数据库:
前三个运行良好,但是类型更改和列删除没有跟随数据库更改。 有什么方法可以使设计师完成工作? 还是目前不支持? 我尚未找到任何相关材料,但仍在搜索。 我猜可能不会发生,因为它们会破坏现有代码的构建,但这只是我的猜测。 这是我的逻辑: 首先,EF应该具有超过1:1的表映射关系,因此很可能仅仅因为您要从表A中删除一列并不意味着该实体不应该具有属性Description。您可能只是将该属性映射到另一个表。 其次,更改类型可能会破坏构建。那是那里唯一的理由。 我发现,通常来说,"从数据库更新模型"功能仍然存在许多错误。 键是我的杀手--我尚未对外键关系进行任何修改,也未向表中添加主键并使更新程序正常工作(因为它会在生成的文件中产生编译错误)代码)-但是要解决该问题,只需删除模型并重新导入即可(只需花一分钟),这很简单-显然不理想,但我从未因"新鲜"导入而失败。 从我所看到的设计师的演示中,它并不是一个完美的工具。它是1.0版产品,因此肯定会有一些痛点。更改类型似乎是其中之一。通过观察设计者和代码生成,我发现人们会在编译时(不太可能)或运行时(实际执行模型时)中断。 我这样做的方式(以及我所做的所有事情,再加上列的重命名)是通过对数据库进行更改并使用EF Code First重新生成EF代码。 我并没有篡改EF Code First类的好坏(包括用于关系的无意义的列)以简化流程。 如果设计数据库或ORM模式生成器中的数据受限制,则将无法对其进行更改。这就是为什么您应该始终从检查数据库更改是否可行开始,在开发数据库上进行尝试,然后修改代码以反映更改的原因开始。
我按照您的要求构建了类似的应用程序。但是我的解决办法是努力。 您必须创建自己的数据库管理案例,并且这些对象将负责创建,更新数据库模式(我手动创建的)。 我在ADO.NET Team博客上看到了不错的文章和源代码,然后您也可以从此博客(它是开源的)下载EDMTools。您还可以实现模型生成,并从中将例程更新到您的项目中。 最后,当您的模式更改时,您应该在运行时重新创建并绑定模型并重建数据程序集。但是您必须知道最重要的想法,您应该将数据模型程序集与项目进行松散耦合(请查看此文章) 否则,您应该等待EF 4.0版本(现在为CTP 1),他们宣布将提供创建,删除,更新DatabaseScript函数。 锁好 如前所述,您可以从设计器中删除该列。至于更改列的数据类型:只需从数据库刷新模型,然后转到表映射并选择在数据库中更改的列即可。右边的值代表您的模型,奇怪的是,该值不会自动更新,而只需选择右边的列并转到属性并在其中更改数据类型即可。它应该成为一个下拉菜单。 干杯。 红润 您需要自己从设计器或XML文件中删除该列。 |
最新内容
相关内容
python cmd中怎么运行python文件
python cmd中怎么运行python文件,培训,文件,路径,以上,程序,方法,更多,内容,运行Python,可在交互模式下运行,或者命令行中。命令行中运行的是pythonid函数如何运行
pythonid函数如何运行,培训,地址,代码,对象,函数,内存,类型,可能会,整数,字符串,id(object)功能:返回的是对象的“身份证号”,唯一且不变,但在不python怎样启动python程序运行
python怎样启动python程序运行,代码,环境,项目,工具,培训,业务,有限,程序,源文件,功能,执行Python程序的三种方式解释器——python/python3交python用哪个软件编写运行python
python用哪个软件编写运行python,软件,环境,代码,培训,服务,分析,工具,功能,程序,系列,编写和运行Python代码的软件叫IDE,也就是集成开发环境python程序怎么运行
python程序怎么运行,系统,代码,名称,培训,平台,语句,模式,结果,提示符,命令,安装完Python在Windows或Linux中的终端中直接输入python即进入Pypython怎么运行dir
python怎么运行dir,培训,信息,参数,方法,列表,属性,变量,模块,类型,范围内,python运行dir的方法:dir()函数不带参数时,返回当前范围内的变量、python如何运行python
python如何运行python,代码,培训,系统,语句,模式,结果,提示符,命令,以下,文件,Python的程序运行,需要Python解释器。安装完Python在Windows或Lpython如何连接mysql数据库
python如何连接mysql数据库,培训,数据,项目,一致,流程,数据库,参数,结果,接口,语句,python数据库接口支持非常多的数据库,你可以选择适合你项python定时修改数据库
python定时修改数据库,时间,服务,培训,单位,代码,标准,线程,操作,时间差,进程,1.传入执行改库操作的时间update_time,用update_time和当前时间python如何在cmd窗口运行python程
python如何在cmd窗口运行python程序,代码,培训,路径,空格,窗口,文件,程序,下面,以上,目录,我们在编写python代码时,可以在交互模式下运行代码,python怎么链接数据库
python怎么链接数据库,培训,数据,一致,流程,项目,数据库,接口,参数,结果,语句,python数据库接口支持非常多的数据库,你可以选择适合你项目的python 3.4版本怎么运行
python 3.4版本怎么运行,代码,培训,情况,平台,官网,软件,程序,形式,版本,程序员,python的程序是在python解释器中运行的解释器是一种让其他程