使用Ef6 Code First在asp mvc5中扩展默认ApplicationDbContext的简单方法

时间:2015-08-07 13:27:06

标签: asp.net-mvc-5

当我在asp mvc项目中运行实体框架Reverse Engineer Code First时,它运行正常并生成所有映射和poco类,但我现在在ApplicationDbContext和新的Auto Generated DbContext中有两个上下文和冲突的类

1 个答案:

答案 0 :(得分:2)

使用数据库中的Code First生成EF类时,通常会有更多步骤,因为生成的代码并不总是完全符合您的要求。我通常将所有文件重命名为“EntityNameDAO”然后右键单击将所有类重构为“EntityNameDAO”以恰当地匹配文件名。

在此之后,您通常会发现在这些生成的类的json结果中您有更多或更少的需求,甚至可能是循环依赖项。为了解决这个问题,我为每个目标EntityName_SpecificUseCase创建了特定的域对象。

您会注意到我使用EntityName“AdditionalData”,以便字母排序使我的每个实体彼此相邻,我可以快速轻松地验证我对每个实体都有正确的风格。

要处理循环json,您需要将此代码添加到appconfig.cs:

int main(int argc, char *argv[])
{
     int test_no=atoi(argv[0]);
     argc--; argv++;
     switch(test_no)
     case 2:
          return main_test1(argc, argv);
     case 1:
          return main_test_tiny_func(argc, argv);
     case 0:
          return main_program(argc, argv);
     }
}