一个最简单的使用Entity Framework 查询SQL 数据库的例子

1.ADO.NET 3.5 Entity Framework是随着.net framework
3.5一起发布的,确认开发环境版本是大于等于3.5版本

2.确认已经安装了ADO.NET 3.5 Entity Framework 和ADO.NET 3.5 Entity Framework
Tools:右键单击创建的winform或者wpf程序,选择“Add|New Item”,查看Templates 列表框中是否有ADO.NET Entity
Data
Model,如果没有,请到此网址下载并安装:http://www.microsoft.com/en-us/download/default.aspx

3.创建一个举例用的SQL 数据库。在SQL Server Management
Studio中运行创建初始数据库的文件,注意把sql文件中的数据库文件路径改成你自己的路径:http://files.cnblogs.com/andyzeng/CSE_DEPT.zip

4.创建一个WPF应用程序,winform的也可以。并添加一个listbox,一个button,如下图:

5.创建实体数据模型:Entity Data Model

在第4步创建的工程上面右键单击创建的,选择“Add|New Item”,列表框中选择ADO.NET Entity Data Model。

得到如下EDM向导,选择Generate from database,点击“Next”

6.得到如下图,按照1,2,3步骤选择前面生成的数据库。

7.选好数据库后会生成连接字符串,给连接指定一个名字:CSE_DEPTEntities

这个名字在创建数据库连接的时候会用到,点Next

8.选择创建映射关系的表,视图,存储过程等,点击“Finish”

9.生成如下映射,并添加了引用和EDM文件到工程。

10.选择一个表右键-〉Mapping details 可以看到详细的字段映射。

11.前面的准备完毕,下面写取数据的代码。

其中用到了三个实体类:EntityConnection,EntityCommand ,EntityDataReader


private void button1_Click(object sender, RoutedEventArgs e)
{
EntityConnection conn = new EntityConnection("name=CSE_DEPTEntities");
conn.Open();
EntityCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT fname.faculty_name FROM CSE_DEPTEntities.Faculty as fname";
EntityDataReader rd = cmd.ExecuteReader(CommandBehavior.SequentialAccess);
this.lsb_faculty.Items.Clear();
while (rd.Read())
{
this.lsb_faculty.Items.Add(rd["faculty_name"]);
}

       conn.Close();
}

运行结果如下:

完毕:

作者:Andy Zeng

参考:《Practical Database Programming With Visual C#.Net》

欢迎任何形式的转载,但请务必注明出处。

时间: 2024-12-15 15:49:38

一个最简单的使用Entity Framework 查询SQL 数据库的例子的相关文章

动态Entity Framework查询:Dynamic Query 介绍

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 Dynamic Query是一个支持动态Entity Framework查询的库.它的设计初衷是为了减少在管理系统中大量出现的对一个数据集进行查找.排序.分页的这类场景的开发工作量,其设计思想是"markup is code ".通过

Entity Framework查询生成大量的子查询,如何避免?求救

最近使用Entity Framework做一个中型的项目,一张表含有千万条数据,并没有使用很复杂的查询,只是程序上使用了DTO进行帅选数据,且使用了分页,效果很不理想.经过跟踪sql,我发现很多简单的查询,都存在子查询,而子查询往往会影响到查询性能,在这里,我想问问大虾,除了自己写SQL语句,有没有更好的解决办法在Entity Framework基础上处理这个问题? 如图所示: Entity Framework查询代码 private async Task<QuotationDto[]> Ge

Entity Framework查询注意

首先我们看下where的方法,直接查看定义(定义如下),其实一种是对IEnumerable的扩展,一种是对IQueryable的扩展,直接看最常用的,其实区别就在IEnumerable的扩展的参数是系统定义的委托Func<TSource,bool> IQueryable的参数则是表达式Expression<Func<TSource,bool>>, 1.IEnumerable<TSource> Where<TSource>(this IEnumer

Entity Framework Code First数据库迁移(DB Migration)

一.手动迁移 第1步.启用数据库迁移 打开程序包管理器控制台 工具->库程序包管理器->程序包管理器控制台 打开控制台后,在控制台管理窗口输入 Enable-Migrations 指令,铵下回车键,到这里已启用了数据库迁移,但还没执行,结果如下图: 第2步.运行数据库迁移 在控制台管理窗口输入 Add-Migration指令,来新增一条数据库迁移版本,输入时必须要带上一个版本名称 Add-Migration AddProductCategoryTypeName,如下图: 运行完成后会在解决方案

使用Entity Framework迁移完数据库后,每次修改代码(非模型代码)后都报错。

问题:使用Entity Framework迁移完数据库后,每次修改代码(非模型代码)后都报错: 支持“XXXDbContext”上下文的模型已在数据库创建后发生更改.请考虑使用 Code First 迁移更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269). 这时如果执行 Add-Migration 生成的迁移代码是空的.于是重新Update-Database,结果却是No pending explicit migrations. 不过这时是不

[原创]Entity Framework查询原理

前言 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

Entity Framework执行Sql语句返回DataTable

Entity Framework中对外开放了数据库连接字符串,使用的时候可以直接得到这个连接字符串,然后进行相关的操作.如果在使用的过程中,发现Entity Framework中有一些满足不了的需求的话,那么就可以用这个连接字符串,自己写ADO的代码,去数据库进行相关的操作.特别是对于一些复杂的查询,这时候,一般是想直接执行一个Sql语句,返回一个结果集.下面是一个方法,直接返回DataTable. /// <summary> /// EF SQL 语句返回 dataTable /// <

ASP.NET CORE系列【六】Entity Framework Core 之数据库迁移

前言 最近打算用.NET Core写一份简单的后台系统,来练练手 然后又用到了Entity Framework Core 发现园子里有些文章讲得不是那么细节,对于新手小白来说,可能会有点懵. 特意整理了几个细节. 正文 数据迁移 首先EF CORE跟以前的EF6是有不同点的, 微软官网列出的不同点:https://docs.microsoft.com/zh-cn/ef/efcore-and-ef6/features 安装 EF 核心 NuGet 包 若要使用 EF 核心,请为你想要使用的数据库提

linq to sql 和 entity framework 输出sql语句

linq to sql: dbcontext.Log 属性,是一个textwriter entity framework: 1 dbcontext.Database.Log, 是一个Action<string>, eg. console.write(string) 2 after 6.1, 也可以设置 interceptor