[asp.net]SQLite 代码第一 onModelCahnge 如何保持旧的数据从数据库

发布时间: 2017/3/26 1:19:11
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

新到 Sqlite 和 EF !

我创造了 DbContext 与一些模型类,将创建一个本地数据库在应用程序启动。数据库将在应用程序运行时得到更新。

当我改变模型中的一些东西 (ex︰ 向类中添加新的属性) 和运行应用程序,重新从零开始创建整个数据库。所以我失去我保存的数据。

怎样才能保持旧数据即使在模型更改。

为前︰

Database.table1
ID | Name
1  | abc
2  | xyz

当我向表 1 类添加新道具,其再创造表与空数据,需要的东西如果可能喜欢这个。

Database.table1
ID | Name | NewProp
1  | abc  | Null
2  | xyz  | Null

解决方法 1:

数据库初始值设定项是什么原因导致要在模型变化上重新创建的数据库。所以您可以通过将它设置为 null 禁用初始值设定项︰

Database.SetInitializer<MyContext>(null);

当然,这意味着您将需要手动使您的数据库与模型匹配。另一种选择是使用初始值设定项不会删除和创建数据库。看起来像是一个为 SqlLite 的项目︰ https://github.com/msallin/SQLiteCodeFirst所以你可以使用 SqliteCreateDatabaseIfNotExists。

最后,您可以使用迁移。看起来不像,开箱即用支持,这样,你将需要第三方工具的。 SQLite 的实体框架 MigrationSqlGenerator

官方微信
官方QQ群
31647020