How to: Use the Entity Framework Data Model Located in an External Assembly 如何:使用位于外部程序集中的EF数据模型
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) 文件中的"创建默认对象空间提供程序"中的应用程序的对象空间提供程序。有关详细信息,请参阅使用实体框架数据模型主题的"指定实 体容器(上下文)"部分。
How to: Use the Entity Framework Data Model Located in an External Assembly 如何:使用位于外部程序集中的EF数据模型的更多相关文章
- [转]Creating an Entity Framework Data Model for an ASP.NET MVC Application (1 of 10)
本文转自:http://www.asp.net/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/creating-a ...
- How to: Supply Initial Data for the Entity Framework Data Model 如何:为EF数据模型提供初始数据
After you have introduced a data model, you may need to have the application populate the database w ...
- 第三篇:Entity Framework CodeFirst & Model 映射 续篇 EntityFramework Power Tools 工具使用
上一篇 第二篇:Entity Framework CodeFirst & Model 映射 主要介绍以Fluent API来实作EntityFramework CodeFirst,得到了大家一 ...
- 第二篇:Entity Framework CodeFirst & Model 映射
前一篇 第一篇:Entity Framework 简介 我有讲到,ORM 最关键的 Mapping,也提到了最早实现Mapping的技术,就是 特性 + 反射,那Entity Framework 实现 ...
- Entity Framework : The model backing the '' context has changed since the database was created
1.采用code first 做项目时,数据库已经生成,后期修改数据库表结构.再次运行时出现一下问题: Entity Framework : The model backing the '' cont ...
- 【Entity Framework】Model First Approach
EF中的model first 所谓mf, 就是使用vs提供的edm designer去设计model,然后将设计好的model使用vs在指定的数据库中生成数据库即可. 当你的项目既没有数据库也没有c ...
- Entity Framework之Model First开发方式
一.Model First开发方式 在项目一开始,就没用数据库时,可以借助EF设计模型,然后根据模型同步完成数据库中表的创建,这就是Model First开发方式.总结一点就是,现有模型再有表. 二. ...
- How to: Use the Entity Framework Model First in XAF 如何:在 XAF 中使用EF ModelFirst
This topic demonstrates how to use the Model First entity model and a DbContext entity container in ...
- Entity Framework 5.0系列之EF概览
概述 在开发面向数据的软件时我们常常为了解决业务问题实体.关系和逻辑构建模型而费尽心机,ORM的产生为我们提供了一种优雅的解决方案.ADO.NET Entity Framework是.NET开发中一种 ...
随机推荐
- 【Python成长之路】词云图制作
[写在前面] 以前看到过一些大神制作的词云图 ,觉得效果很有意思.如果有朋友不了解词云图的效果,可以看下面的几张图(图片都是网上找到的): 网上找了找相关的软件,有些软件制作 还要付费.结果前几天在大 ...
- 【nodejs原理&源码赏析(7)】【译】Node.js中的事件循环,定时器和process.nextTick
[摘要] 官网博文翻译,nodejs中的定时器 示例代码托管在:http://www.github.com/dashnowords/blogs 原文地址:https://nodejs.org/en/d ...
- 时至今日,我们应该承认.Net目前的状况实在堪忧
一: .Net之前 .Net 经历了多年的锤炼,语言特性本身非常优雅和完善,也是非常甜品的一种语言 二: .Net现状 但是与此同时,.Net的生态日益糟糕,困扰着广大.Neter 三: .N ...
- Redis 中的数据库
前面我们花了很多的时间介绍了 redis 中基本的数据结构,及其内部的实现情况,这些都是非常基础的东西,可能不经意间你就会用到他们,希望你花点时间了解一下. 接下来,我们将走近 redis 数据库,学 ...
- luogu P3111 [USACO14DEC]牛慢跑Cow Jog_Sliver |贪心+模拟
有N (1 <= N <= 100,000)头奶牛在一个单人的超长跑道上慢跑,每头牛的起点位置都不同.由于是单人跑道,所有他们之间不能相互超越.当一头速度快的奶牛追上另外一头奶牛的时候,他 ...
- CF579 - A Raisinng bacteria
You are a lover of bacteria. You want to raise some bacteria in a box. Initially, the box is empty. ...
- DRF Django REST framework 之 路由器与版本控制组件(七)
路由器 一些Web框架提供了用于自动确定应如何将应用程序的URL映射到处理传入请求的逻辑的功能. 而DRF的路由器组件也提供了一种简单,快速且一致的方式将视图逻辑映射到一组URL上. 路由器组件的使用 ...
- Hybrid App 应用开发中 9 个必备知识点复习(WebView / 调试 等)
前言 我们大前端团队内部 ?每周一练 的知识复习计划继续加油,本篇文章是 <Hybrid APP 混合应用专题> 主题的第二期和第三期的合集. 这一期共整理了 10 个问题,和相应的参考答 ...
- chrome 浏览器的使用技巧
前端工程师大部分的工作成果都需要在浏览器中查看,使用 chrome 浏览器的频率非常高.更好更优雅地使用 chrome,将 chrome 配置成一款趁手的浏览器,将极大地提升编程效率.本文将详细介绍 ...
- c语言输入矩阵的对角线之和
一.程序代码如下 #include<stdio.h> #define M 4 main() { int matrix[][M]={ {1,2,4,5},{2,6,6,7},{8,7,6,5 ...