一起谈.NET技术,在Entity Framework 4中映射现有实体类(POCO)

简介:   Entity Framework的全称是ADO.NET Entity Framework,是微软开发的基于ADO.NET的ORM(Object/Relational Mapping)框架。  Entity Framework的主要特点:  1. 支持多种数据库(Microsoft SQL Server, Oracle, and DB2);  2. 强劲的映射引擎,能很好地支持存储过程;  3. 提供Visual Studio集成工具,进行可视化操作;  4. 能够与ASP.NET, WPF, WCF, WCF Data Services进行很好的集成。

  Entity Framework的全称是ADO.NET Entity Framework,是微软开发的基于ADO.NET的ORM(Object/Relational Mapping)框架。

  Entity Framework的主要特点:

  1. 支持多种数据库(Microsoft SQL Server, Oracle, and DB2);

  2. 强劲的映射引擎,能很好地支持存储过程;

  3. 提供Visual Studio集成工具,进行可视化操作;

  4. 能够与ASP.NET, WPF, WCF, WCF Data Services进行很好的集成。

  更多简介,请看:ADO.NET Entity Framework At-a-Glance

  在博客园新版短消息功能开发中,我们准备用Entity Framework 4,我们首先面临这样的问题:

  实体类与数据库都已经存在,而且实体类的类名与数据库中的表名,类的属性与表中对应的字段名称不同。也就是说我们不能使用通常的方法在VS2010中通过ADO.NET Entity Data Model(.edmx文件)生成实体类与ObjectContext。

  注:这个实体类有个称呼叫POCO(Plain Old CLR Objects)。

  我们解决方法是:在.edmx文件中手动配置映射关系。

  下面是操作步骤:

  1. 使用ADO.NET Entity Data Model,在VS2010创建一个.edmx文件,如下图:

  2. 根据Entity Data Model Wizard进行操作,在选择数据库表的窗口中,注意在Model Namespace输入框中输入现有实体类的命名空间,如下图:

  3. 点击Finish,生成相应的EntityType,如下图:

  这里的EntityType是根据数据库中的表结构生成的,与实际的实体类是不一样的,表名与类名不一样,表的很多字段与类的属性不一样。

  下面我们配置映射的关键地方:

  4. 点击.edmx窗口点击空白处,在属性窗口中将Code Generation Strategy的属性设置为None(见下图),也就是不让VS2010自动生成实体类和对应的ObjectContext。

  5. 继续在.edmx窗口,选择实体类,点击右键选择Show in Model Browser,见下图:

  6. 进入Model Browser窗口,见下图:

  上图中,上面是实体类(这里是VS2010自动生成的,与数据库表是一一对应的),下面是表结构。

  修改映射就是在这里:在Entity Types中将类名改为实际的实体类名,将属性改为实际的属性,如下图:

  修改之后,映射就配置好了,.edmx文件中实体类图中也随之自动更改,见下图:

  7. .edmx文件实际就是一个xml文件,映射信息就存放在其中。在VS2010解决方案管理器中选择这个文件,右键Open With,选择用XML Editor打开,就可以看到.edmx文件的内容,如下图:

  8. 再写个继承自ObjectContext的类(见下图),工作就完成了。

目录
相关文章
|
7天前
|
人工智能 开发框架 前端开发
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
|
6天前
|
人工智能 开发框架 安全
C#/.NET/.NET Core技术前沿周刊 | 第 13 期(2024年11.11-11.17)
C#/.NET/.NET Core技术前沿周刊 | 第 13 期(2024年11.11-11.17)
|
1月前
|
开发框架 缓存 监控
NET Framework 到 .NET 5/6 的迁移是重大的升级
本文详细介绍了从 .NET Framework 4.8 迁移到 .NET 5/6 的过程,通过具体案例分析了迁移策略与最佳实践,包括技术栈评估、代码迁移、依赖项更新及数据库访问层的调整,强调了分阶段迁移、保持代码可维护性及性能监控的重要性。
48 3
|
1月前
|
人工智能 开发框架 C#
C#/.NET/.NET Core技术前沿周刊 | 第 6 期(2024年9.16-9.22)
C#/.NET/.NET Core技术前沿周刊 | 第 6 期(2024年9.16-9.22)
|
1月前
|
人工智能 开发框架 Cloud Native
C#/.NET/.NET Core技术前沿周刊 | 第 9 期(2024年10.07-10.13)
C#/.NET/.NET Core技术前沿周刊 | 第 9 期(2024年10.07-10.13)
|
1月前
|
数据可视化 NoSQL C#
C#/.NET/.NET Core技术前沿周刊 | 第 8 期(2024年10.01-10.06)
C#/.NET/.NET Core技术前沿周刊 | 第 8 期(2024年10.01-10.06)
|
2月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
41 7
|
2月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
59 0
|
3月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
48 0
|
3月前
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?