Entity Framework 迁移 API

6

你好,我已经在Entity Framework的基础上创建了一个数据同步项目。 该框架在一定程度上独立于模式。 我希望使其更加容忍模式的变化,即使是当前认为的破坏性变化。

为了实现这一点,我需要进入EF迁移引擎,并生成类似于下面的命令

add-transformation 


这将检测变化并创建一个转换。

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

编辑1:- 回答在评论中收到的问题

  1. Code First方法
  2. 范围:
    数据的更改将由迁移处理,无需合并更改。 我需要的是执行像add-transformation这样的命令的方法,它将创建一个新的转换,就像创建一个新的迁移一样。因此,让我们假设我有一个数据库模型(域模型)如下:

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

然后我将类更改为结构体:

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

然后我运行add-transformation ClassChangesA
我需要的代码应该能够:

1. 检测更改
2. 生成一个类似于迁移类的类。例如:

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

假设您的方法是基于代码的,我建议您阅读MSDN文章https://msdn.microsoft.com/en-us/library/jj591621(v=vs.113).aspx。 - pravs
第一个问题:Code First 还是 DB First 方法?第二个问题:关于“extent”,你的数据同步应用程序应该做什么?a. 忽略更改(添加字段?添加表格?)还是b. 复制新更改中包含的数据(字段或其他内容)?第三个问题:如果有人“扩展”数据库,您能否重新编译同步应用程序? - bubi
@bubi - 我通过编辑答案回答了你的问题。请查看它。 - Parv Sharma
如果有人愿意回答关于某个问题的提问,我也愿意增加悬赏金额,最高可达100分。 - Parv Sharma
1个回答

1
我相信你要找的命令是 add-migration migration_name,然后你可以使用命令update-database来更新你的数据库,这就是如何使用Entity Framework中的Code First Migrations。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接