代码改变世界

随笔分类 -  Entity Framework

EF中一对多的自反关系设置

2014-02-27 23:06 by 左眼微笑右眼泪, 594 阅读, 收藏, 编辑
摘要: 对于一般的目录树,通常就是一对多的自反关系,一般会有一个PID,引用于这个ID,实体类代码类似于下: public partial class Catalog { public Catalog() { this.References = new List(); ... 阅读全文

监听Entity Framework生成的Sql语句

2014-02-16 23:12 by 左眼微笑右眼泪, 1008 阅读, 收藏, 编辑
摘要: Entity Framework为我们提供了很大的方便,但有时候,我们想看看EF生成的Sql语句到底是怎样的,一种方式是我们可以启用Sql Server Profer工具。今天介绍另外一种方式,非常简单,可以监听EF执行的每条Sql语句,而且也可以自定义在执行语句前,执行语句完成后的动作。通过这种方式也可以非常方便的去监听系统的运行日志。 完成这个功能... 阅读全文

Entity Framework中的几种加载方式

2014-02-16 23:01 by 左眼微笑右眼泪, 1763 阅读, 收藏, 编辑
摘要: 在Entity Framework中有三种加载的方式,分别是延迟加载,自动加载和显示加载。下面用一个例子来说明:现在有两个表,一个是资料表(Reference),另外一个表是资料分类表(Catalog)。一个资料属于某一个分类,但是一个分类下可以包含多个资料。是一个一对多的关系。 两个实体类代码如下: public partial class Ca... 阅读全文

Entity Framework中执行Sql语句

2014-02-16 22:17 by 左眼微笑右眼泪, 1478 阅读, 收藏, 编辑
摘要: 如果想在EF框架中执行Sql语句,其实很简单,EF里面已经提供了相关的方法(此处使用的EF为EF4.1版本)。 EF中提供了两个方法,一个是执行查询的Sql语句SqlQuery,另外一个是执行非查询的语句ExecuteSqlCommand。使用起来也很简单。SqlQuery有两种形式的,一种是泛型的,一种是非泛型的。比如我们要在目录表中查询ID为多少的一个分类。可以这... 阅读全文

EF Power Tools使用介绍

2014-02-12 21:07 by 左眼微笑右眼泪, 4869 阅读, 收藏, 编辑
摘要: EF Power Tools可以从数据库反向生成实体及映射文件。一般在使用EF,有Database First,Code First以及Model First。常用的是Database First和Code First。Database First是先生成数据库,然后生成edmx文件,然后进行相关的操作,缺点就是数据库一更新,这个文件就需要更新。而Code First就是先定义实体... 阅读全文

Entity Framework执行Sql语句返回DataTable

2014-02-09 14:43 by 左眼微笑右眼泪, 8989 阅读, 收藏, 编辑
摘要: Entity Framework中对外开放了数据库连接字符串,使用的时候可以直接得到这个连接字符串,然后进行相关的操作。如果在使用的过程中,发现Entity Framework中有一些满足不了的需求的话,那么就可以用这个连接字符串,自己写ADO的代码,去数据库进行相关的操作。特别是对于一些复杂的查询,这时候,一般是想直接执行一个Sql语句,返回一个结果集。下面是一个方法,直接返回... 阅读全文

Entity Framework + WCF 远程调用出错

2014-02-07 22:20 by 左眼微笑右眼泪, 572 阅读, 收藏, 编辑
摘要: 在使用Entity Framework中使用WCF,在程序中调用服务一直报错,我一直以为是WCF的哪个地方的配置有问题,找来找去,一直没有解决。 最后在网上找到一篇文章,说是序列化的问题,我才想起来,原来是跟Entity Framework有关。又是导航属性序列化的问题。觉得真是坑爹,早该想到的。 分析出来,还是因为实体类中有导航属性,而EF会... 阅读全文

使用Entity Framework时,序列化出错

2014-02-07 19:44 by 左眼微笑右眼泪, 729 阅读, 收藏, 编辑
摘要: 在使用Entity Framework时,如果数据库中有两个表是一对多或者是多对多的关系,那么生成的实体类中就有一个导航属性。这个导航属性前面都加上了一个virtual关键字。这个virtual关键字代表这个属性的值在运行时,是延迟加载的。我们可以在Context里面关闭掉这个延迟加载的特性。 如果一个实体类有这个导航属性,并且有virtual关键字。不管你是... 阅读全文

自定义T4模板去掉实体对象中的下划线

2014-02-06 20:33 by 左眼微笑右眼泪, 612 阅读, 收藏, 编辑
摘要: 在EF Power Tool 默认使用的T4模板中,如果数据库表有下划线,那么生成的实体也有下划线,但是我们实际使用的过程中,是不希望有下划线的,要解决这个问题,可以自定义这个T4模板,把生成的实体中的下划线去掉。具体的方法是: 1、首先通过菜单生成默认的T4模板: 生成的模板如下: 2、在Entity.tt中加上一个... 阅读全文

EF更新时出错,An error occurred while updating the entries. See the inner exception for details

2014-01-01 18:50 by 左眼微笑右眼泪, 10467 阅读, 收藏, 编辑
摘要: 在使用EF进行更新数据时出错,报出的异常是 “An error occurred while updating the entries. See the inner exception for details” 最开始一直不知道在哪里,可以看到这个“inner exception”,最后才发现,在异常弹出窗的下面,有一个查看详情。可以在这个页面里面看到具体的错误信息... 阅读全文

EF报错“EntityValidationErrors”

2014-01-01 18:38 by 左眼微笑右眼泪, 630 阅读, 收藏, 编辑
摘要: 在使用EF更新实体的时候报错,显示界面如下: 点击查看详情: 在查看详细的窗体中,EntityValidationErrors里面的也看不到具体的错误原因。在网上找到一种解决的办法,使用DbEntityValidationException类,捕获这个异常,在这个异常的详细信息里面就可以看到具体的错误信息。添加代码如下: ... 阅读全文

使用Entity Framework出错

2013-12-14 15:36 by 左眼微笑右眼泪, 478 阅读, 收藏, 编辑
摘要: 在使用的过程中,写了一个例子,结果就报错说 The context cannot be used while the model is being created. 在网上搜索了半天,发现跟我遇到的情况都不一样,最后使用Using把Context括起来就行了。然后用的过程中又有另外一个错误 在网上搜索,都是说数据库连接字符串有问题,但是我找了好... 阅读全文

EF使用报错说缺少引用

2013-12-05 19:48 by 左眼微笑右眼泪, 301 阅读, 收藏, 编辑
摘要: 在程序中已经引用了EF,也引用了System.Data,但是一起报这个错误: 在类前面也已经写了 using System.Data.Entity,百思不得其解,最后才发现,需要引用一下这个组件: 以前以为已经写了using没有出错,那么就证明这个命名空间是在System.Data命令空间里面,谁知不是的,还是得单独引用这个命名空间。 阅读全文