【问题标题】:Entity Framework Migration API实体框架迁移 API
【发布时间】:2017-08-09 19:24:46
【问题描述】:

您好,我在实体框架之上创建了一个数据同步项目。 该框架在某种程度上独立于模式。 我想让它更能容忍模式的变化,即使是目前考虑的重大变化。

为了实现这一点,我必须进入 ef 迁移引擎,并且必须生成一个类似

的命令
add-transformation 


它将检测更改并创建转换。

我查看了 ef 6 的源代码,但找不到合适的起点。 任何帮助,将不胜感激。

编辑 1 :- 回答 cmets 中收到的问题

  1. 代码优先方法
  2. 范围:
    数据更改将由迁移处理,因此无需合并更改。 我需要的是一种执行像add-transformation 这样的命令的方法,它会创建一个新的转换,比如一个新的迁移。所以通常可以说我有一个数据库模型(域模型),比如

    A 级 { 公共 int 一个 {get;放;} 公共 int b {get;放;} }

然后我将类更改为结构

class A 
{
 public int a {get; set;}
 public int b {get; set;}
 public int c {get; set;}
}

然后我运行add-tranformation ClassChangesA
我需要的代码应该

1. 检测变化
2. 生成类似迁移类的类。例如。

class Transformation_112334_ClassChangesA
{
 public A Up(OldA model){
   //Property C added
 }
 public OldA Down(A model){
   //Property C removed
 }
}

【问题讨论】:

  • 假设您的方法是代码优先,我建议您阅读 MSDN 文章 msdn.microsoft.com/en-us/library/jj591621(v=vs.113).aspx
  • 第一个问题 Code first 还是 DB First 方法?第二个问题,关于“范围”您的数据同步应用程序应该做什么?一种。忽略更改(添加字段?添加表格?)或 b。还复制新更改(字段或什么?)中包含的数据?第三个问题,你可以在有人“扩展”数据库后重新编译你的同步应用程序吗?
  • @bubi - 我已经通过编辑答案回答了你的问题。请看。
  • 如果有人愿意回答问题来获得100分,我也愿意增加赏金

标签: entity-framework entity-framework-migrations


【解决方案1】:

我相信您正在寻找的命令是 add-migration migration_name 然后您可以使用命令 update-database 更新您的数据库,这是在实体框架中使用代码优先迁移的方法。

【讨论】:

    猜你喜欢
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 2019-06-24
    • 2020-06-21
    相关资源
    最近更新 更多