If you have a non-XAF application, and want to develop an XAF application that utilizes the same database, you can generate business classes for an existing database to achieve this task. However, if your existing application is based on the Entity Framework data model, you can reuse this model in XAF to avoid code duplication. This topic describes how to use the data model located within an external assembly.

如果您有一个非 XAF 应用程序,并且想要开发一个使用同一数据库的 XAF 应用程序,则可以为现有数据库生成业务类来实现此任务。但是,如果现有应用程序基于实体框架数据模型,则可以在 XAF 中重用此模型以避免代码重复。本主题介绍如何使用位于外部程序集中的数据模型。

Note 注意
If the external assembly is an XAF Module, then you do not need to follow this topic. Entities declared within XAF modules are automatically recognized and added to the Application Model.
如果外部程序集是 XAF 模块,则无需遵循本主题。在 XAF 模块中声明的实体将自动识别并添加到应用程序模型中。

1.Create a new XAF solution using the DevExpress v19.2 XAF Solution Wizard. Select Entity Framework Code First at the Choose ORM step and click Finish.

使用 DevExpress v19.2 XAF 解决方案向导创建新的 XAF 解决方案。在"选择 ORM"步骤中首先选择实体框架代码,然后单击"完成"。

2.Reference the external assembly that contains the Entity Framework data model to be used.

引用包含要使用的实体框架数据模型的外部程序集。

3.A DbContext class is required to use entities from the external assembly. To declare it, do one of the following.

使用外部程序集中的实体需要 DbContext 类。要声明它,可以执行以下操作之一。

    • In the module project, inherit the DbContext declared in the external assembly.
    • Add required entity types from the external assembly to the existing DbContext located in the BusinessObjects/MySolutionDbContext.cs(MySolutionDbContext.vb) file.
    • 在模块项目中,继承在外部程序集中声明的 DbContext。
    • 将所需的实体类型从外部程序集添加到位于业务对象/MySolutionDbContext.cs(MySolutionDbContext.vb)文件中的现有 DbContext。

4.Run the Module Designer. In the Exported Types section, expand the Referenced Assemblies node. Then, expand the node that corresponds to the external assembly. Select entities to add and press the SPACEBAR or use the Use Type in Application command from the context menu. The selected entities will be marked in bold. This means that they have been added to the Application Model, and will take part in the UI construction process.

运行模块设计器。在"导出的类型"部分中,展开引用程序集节点。然后,展开与外部程序集对应的节点。选择要添加和按下空格键的实体,或使用上下文菜单中的"在应用程序中使用类型"命令。所选实体将以粗体标记。这意味着它们已添加到应用程序模型中,并将参与 UI 构造过程。

Note 注意
Alternatively, you can add entities in code. Open the Module.cs (Module.vb) file and add the required entity types to the ModuleBase.AdditionalExportedTypes collection in the module's constructor.
或者,您可以在代码中添加实体。打开Module.cs (module.vb) 文件,并将所需的实体类型添加到模块基础。附加导出类型集合中的模块构造函数。

5.Rebuild your solution, so that the changes made in the Designer are loaded to the Application Model, and run the Model Editor. Make sure that the entities added in the previous step are available in the BOModel node.

重新生成解决方案,以便将设计器中所做的更改加载到应用程序模型,并运行模型编辑器。确保上一步中添加的实体在 BOModel 节点中可用。

6.Add navigation items for the added entities by following the steps described in the Add an Item to the Navigation Control tutorial.

按照"将项目添加到导航控制"教程中所述的步骤,为添加的实体添加导航项。

7.Ensure that the correct DbContext type is passed to the application's Object Space Provider in the CreateDefaultObjectSpaceProvider method located in WinApplication.cs (WinApplication.vb) and WebApplication.cs (WebApplication.vb) files. For details, refer to the Specify the Entity Container (Context) section of the Use the Entity Framework Data Model topic.

确保将正确的 DbContext 类型传递到位于WinApplication.cs (WinApplication.vb) 和WebApplication.cs (WebApplication.vb) 文件中的"创建默认对象空间提供程序"中的应用程序的对象空间提供程序。有关详细信息,请参阅使用实体框架数据模型主题的"指定实 体容器(上下文)"部分。

最新文章

  1. Xms Xmx PermSize MaxPermSize 区别
  2. JSP调用JAVA方法小例子
  3. 6.Type and Member Basics
  4. 虚拟化之vmware-截图解释
  5. 发送WIN+SAPCE键,WINDOWS,空格键
  6. 自定义一个可以使用foreach语句进行迭代的类(IEnumerable)
  7. 10905 - Children's Game
  8. Android L 使用ART能提高多少性能?
  9. Android自己定义DataTimePicker(日期选择器)
  10. Nyoj42 一笔画问题 (欧拉道路)
  11. Dom操作--跑马灯效果
  12. Cacti完全使用手册 ( 让你快速个性化使用Cacti )
  13. js上拉跳转原理
  14. 使用wget命令下载网络资源
  15. php 根据输入的参数,获取上季度最后一个月的时间
  16. 20165314 2017-2018-2《Java程序设计》课程总结
  17. span元素文字自动换行
  18. Codeforces 908F New Year and Rainbow Roads
  19. Jackson序列化日期类型的属性
  20. 8 -- 深入使用Spring -- 3...4 在ApplicationContext中使用资源

热门文章

  1. 震惊!线上四台机器同一时间全部 OOM,到底发生了什么?
  2. Erlang/Elixir精选-第2期(20191209)
  3. ubuntu下仅仅获取网卡一的ip地址 && shell中字符串拼接
  4. oracle开启关闭日志归档
  5. 🔥🔥🔥Spring Cloud进阶篇之Eureka原理分析
  6. 【转载】Dockerfile文件详解
  7. java之JVM内存模型
  8. Python基础第二课
  9. python读取,显示,保存mnist图片
  10. 上手spring boot项目(三)之spring boot整合mybatis进行增删改查