随笔分类 -  其它

上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 35 下一页
摘要:回到目录相关文章系列第八回 EF架构~将数据库注释添加导入到模型实体类中第二十一回 EF架构~为EF DbContext生成的实体添加注释(T4模板应用)第二十二回 EF架构~为EF DbContext生成的实体添加注释(T5模板应用)使用EF架构时,你的实体生成方案有多种,entity object,poco,dbcontext等等,对于entity object方案生成的实体,我们感觉很臃肿,当然它的功能很强在,但有时在查看类实体时,有些麻烦,因为所有实体都在一个类文件中,有点像linq to sql,而它的类格局也与dbml有些雷同,当然这不是今天的重点,今天主要说的是当EDMX文件添. 阅读全文
posted @ 2012-10-31 10:24 张占岭 阅读(10557) 评论(4) 推荐(4)
摘要:回到目录无论是linq to sql 还是entity frameworks,在进行列表操作时都会有一个毛病,那就是它的操作只能一个实体一个实体的发到服务器,这样,如果列表的数量很大,如列表为10万条数据,那么,这种操作将是非常性能的,可能你的DB就挂了。解决方案:拼接T—SQL串,并使它具有通用性好处:与服务器建立一次连接,给服务器发一条SQL命令,即可实现代码如下: 1 /// <summary> 2 /// 构建Insert语句串 3 /// 主键为自增时,如果主键值为0,我们将主键插入到SQL串中 4 /// </summary> 5... 阅读全文
posted @ 2012-10-30 23:24 张占岭 阅读(9594) 评论(12) 推荐(5)
摘要:回到目录ObjectContext作为entity framework的最原始的数据上下文对象,它的操作都是具有原始性的,没有被封闭过的,这也就难免在有些功能上欠缺一点,用过DbContext作为EF数据上下文的同学一定有留意到它的Find<TEntity>(params object[] keyValues)方法,不错,它确实比较方便,通过主键(可以是复合主键)来查找实体,这个功能在ObjectContext对象上是没有被提供的,所以,我把这个功能在ObjectContext上实现了一下,现在分享给各位: 1 /// <summary> 2 /// 根据主键得到一个实 阅读全文
posted @ 2012-10-30 22:24 张占岭 阅读(5230) 评论(1) 推荐(1)
摘要:回到目录相关文章系列第八回 EF架构~将数据库注释添加导入到模型实体类中第二十一回 EF架构~为EF DbContext生成的实体添加注释(T4模板应用)第二十二回 EF架构~为EF DbContext生成的实体添加注释(T5模板应用)在EF架构中,我们的数据库注释不会被自动映射到EDMX模型上,而模型的说明也不会自己在生成的SQL语句上体现,我们需要手动做一下设置才行。首先分两步走,第一步Data First环境下,将数据库注释添加到实体类;第二步 Code First环境下,将实体类注释,输出到SQL语句上。下面是实现方法:第一 数据库注释添加到实体类从数据库更新模型后,假设为" 阅读全文
posted @ 2012-10-25 11:48 张占岭 阅读(8099) 评论(12) 推荐(5)
摘要:写JS还是谨慎点好,为什么这样说,首先一个常识就是,在浏览器执行JS脚本过程中,当出现脚本错误,并且你没有手动进行异常捕捉时,他会在浏览器下面出现黄色的叹号,这是正常的,这也不是最重要的,最重要的是,出错行以下的所有JS代码将中停执行,这是我们不希望看到的,所以说,对于自己写的,拿不准的脚本还是加上异常捕捉比较好。1 清除黄色叹号:window.onerror={return true;} //这只是表面清除了错误,但JS代码将被中停2 为容易出错的,容易产生兼容问题的代码段加上try..cache 1 try{ 2 3 var a="hello world"; 4 5 D 阅读全文
posted @ 2012-10-23 17:39 张占岭 阅读(1208) 评论(0) 推荐(3)
摘要:产生这个问题的原因,其时是由我们的习惯引起的,一般说过,我们的update操作是这样的1 从数据表把数据获出来2 修改取出现的实体值3 发回给数据表,更新成功这看上去没有问题,但在EF环境中就会产生问题,因为当你取实体时,默认情况下EF会向ObjectStateManager提交一种跟踪机制,即向它里面添加了一个键值,而当你调用update时,这时它已经有这个键值了,所有出现异常也很正常。解决方法1:不使用上面的逻辑,直接将实体附加到数据上下文中,这是可以的解决方法2:在获取单条实体时,取消实体跟踪,扩展方法是AsNoTracking(),这时不会向ObjectStateManager添加键值 阅读全文
posted @ 2012-10-23 15:34 张占岭 阅读(719) 评论(0) 推荐(1)
摘要:编译器错误消息: 类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中定义。必须添加对程序集 “System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089” 的引用。原因,因为在进行页面渲染时用到了这个程序集,而程序没有加载这个,所以出现了错误,一般地,我们可以在Web.config中,注册这个程序集如下代码:1 <assemblies>2 <add assembly="System.Web. 阅读全文
posted @ 2012-10-23 11:54 张占岭 阅读(2743) 评论(0) 推荐(2)
摘要:回到目录上回主要把数据操作规范及EF两种基类下的实现说了一下,今天主要针对ObjectContext情况下的批量操作作一个详细的说明,首先,要说明一点,批量操作不用ObjectContext提供的方法,而是使用拼SQL串的方式,将列表拼成一个SQL串,一次的发给数据库,这样在性能上绝对是一个质的飞越,本人尝试过,无论是EF还是linq to sql,它们提供的方法,对于列表的操作会产生N条SQL串(N=列表的长度)。一个操作类型枚举:1 /// <summary>2 /// 執行SQL的類型3 /// </summary>4 pu... 阅读全文
posted @ 2012-10-22 22:58 张占岭 阅读(3199) 评论(5) 推荐(7)
摘要:回到目录在EF环境里,我们的数据上下文对象通常是有两个版本,一个是DbContext对象,另一个是ObjectContext,个人觉得前者是轻量级的,对于code first模式中使用比较多,而后者是原生态的,最初的EDM(entity Data Model)就是以这个为基类的,它的实现与linq to sql很类似,也是分部方法,lambda表达式等元素的产物。看看我的一个规范,两个实现吧!一个规范: 1 namespace Commons.Data 2 { 3 /// <summary> 4 /// data repository interface 5 ... 阅读全文
posted @ 2012-10-19 23:47 张占岭 阅读(6615) 评论(16) 推荐(8)
摘要:1 <%@ Page Language="C#" %> 2 3 <%@ Import Namespace="System.Data.SqlClient" %> 4 <% 5 string ServerName = "测试"; 6 string DBIP = "-"; // - 表示没有数据库服务器 7 string DBName = ""; 8 string DBUser = ""; 9 string DBPassword = "&qu 阅读全文
posted @ 2012-10-19 22:15 张占岭 阅读(883) 评论(0) 推荐(1)
摘要:ADO.NET Entity Framework 是.Net Framework 3.5 SP1 引入的实体框架,它使开发人员可以通过对象模型(而不是逻辑/关系数据模型)专注于数据。实体框架Entity Framework使用概念层、映射层和逻辑层将逻辑数据库结构抽象化。ADO.NET Entity Framework是建立在关系数据库上的一种抽象概念模型(Conceptual Model)框架。术语说明:Data Source: 我们所熟知的数据库或其他可能的数据源,SQL Server、Oracle、DB2、MySQL 等等。Data Providers: ADO.NET Data Pro 阅读全文
posted @ 2012-10-19 22:07 张占岭 阅读(1536) 评论(1) 推荐(2)
摘要:在分层架构中,查询操作是很常见的,我们有时总是希望把它写得健壮一些,有时总希望重复代码少一些,可能有时也希望它可以美丽一些,呵呵!在这个系列中,我将为大家解说一下分层架构里的条件过滤,如何去设计它,WEB,BLL,DATA层都干什么事,怎么样使程序更加灵活,更加合理些。目录:一 每个层对于“条件过滤”的职责二 Lambda表达式对于查询语句简化了不少,牺牲的性能可以接受三 将所有过滤条件放到字典里,最后统一过滤四 为Iqueryable结果集添加扩展方法,并添加排序功能五 模块完整代码一 每个层对于“条件过滤”的职责WEB UI 层:整理查询的对象,并进行初始化工作,组织Predi... 阅读全文
posted @ 2012-10-08 17:10 张占岭 阅读(899) 评论(0) 推荐(3)
摘要:回到目录linq中也有像T—SQL的distinct方法,可以将重复的结果集去重,以下是我们使用 distinct()时需要注意的地方:1 distinct去重记录要求每个字段都重复时,才算重复对象,这与T—SQL保持一至2 disinct语句与orderby语句可以放在一起使用,对彼此不产生影响3 distinct是在数据库端进行的操作,即,你在linq中的distinct与T-SQL的distinct效果一样,不会产生性能问题4 distinct的数据集中不能有复杂对象,如果出现List<T>这种引用类型,那LINQ在解释成T—SQL时,将会把distinct()去掉,从而使去 阅读全文
posted @ 2012-09-25 11:02 张占岭 阅读(3071) 评论(1) 推荐(2)
摘要:回到目录你是否有过从LINQ-TO-SQL的上千个表中找某个表而发愁呢,我是有过,确实很不好找,而且这方法的工具与说明文档非常少,工具有也是收费的,而做为“免费”的我们,从来对收费的概念是距而远之的。VS IDE是否有针对DBML文件的查找功能呢?对不起,这个查找对DBML是不灵的,呵呵,那是否有灵的呢,有,当然有,因为我已经找到了定位linq to sql实体的方法了,呵呵!在linq to sql的dbml文件空白处右击鼠标-》属性然后,我们可以在“属性”窗口中,选择你需要定位的类名,然后,它就会自己在模型中定位了,呵呵!怎么样,很神奇吧,那就让我们记住它吧,呵呵!回到目录 阅读全文
posted @ 2012-09-18 17:43 张占岭 阅读(745) 评论(1) 推荐(4)
摘要:MVC3+EF+Autofac网上这种文章确实没有,呵呵,今天就写一个,代大家分享!这个系列的文章将带我们进入一种新的开发模式,注入开发模式,或者叫它IOC模式,说起IOC你可以这样去理解它,它为你的某个实现流出一个注入点,你生产的对象,可以根据你之前的配置进行组合,这是可以的。而注入点的位置及方式也是多种多样的,我们今天主要说一个通过HTTP请求进行注入的方式,IOC工具使用高效的Autofac,对它的认识你可以看这篇文章。首先看一下我们这个项目的知识点:MVC3~一个对UI层进行分层的架构模式,在微软的MVC3中加入了开源的Razor引擎EF~这无疑是微软自己比较成功的ORM工具,它执行效 阅读全文
posted @ 2012-09-06 09:14 张占岭 阅读(14422) 评论(23) 推荐(16)

上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 35 下一页