摘要:
近来发现很多ASP.NET MVC的例子中都使用了Repository模式,比如Oxite,ScottGu最近发布的免费的ASP.NET MVC教程都使用了该模式。就简单看了下。在《企业架构模式》中,译者将Repository翻译为资源库。给出如下说明:通过用来访问领域对象的一个类似集合的接口,在领域与数据映射层之间进行协调。在《领域驱动设计:软件核心复杂性应对之道》中,译者将Repository翻译为仓储,给出如下说明:一种用来封装存储,读取和查找行为的机制,它模拟了一个对象集合。使用该模式的最大好处就是将领域模型从客户代码和数据映射层之间解耦出来。我们来看下在LinqToSql中如何应用该 阅读全文
摘要:
在EF中,各个实体的插入、更新和删除也都通过使用存储过程来完成,以便提高点性能。这个类似于数据集。其步骤是:先定义存储过程,然后在VS的可视化设计器,设置存储过程映射即可。下面,以为Supplier实体映射存储过程为例。分别建立插入、更新和删除存储过程。InsertSuppliers存储过程定义如下:CREATE PROCEDURE [dbo].[InsertSuppliers] -- Add the parameters for the stored procedure here@CompanyName nvarchar(40),@ContactName nvarchar(30),@C... 阅读全文
摘要:
之前版本的的EF 是不支持output参数的,但是现在新的版本是可以的了。旧版本要是想要获取output参数,请参考这篇文章:http://www.cnblogs.com/xray2005/archive/2009/06/03/1495112.html下面说下怎么样获取output参数值。存储过程如下:CREATE PROCEDURE [dbo].[GetNameByCustomerId] @CustomerId varchar(5), @ContactName varchar(30) outputASBEGIN SET NOCOUNT ON; SELECT @ContactName=Cont 阅读全文
摘要:
目前,EF对存储过程的支持并不完善。存在以下问题:·EF不支持存储过程返回多表联合查询的结果集。·EF仅支持返回返回某个表的全部字段,以便转换成对应的实体。无法支持返回部分字段的情况。·虽然可以正常导入返回标量值的存储过程,但是却没有为我们自动生成相应的实体.cs代码,我们还是无法在代码中直接调用或使用标量存储过程·EF不能直接支持存储过程中Output类型的参数。·其他一些问题。下面,主要针对如何使用存储过程,以及存储返回实体、表的部分字段这个几个问题,做具体介绍。·导入存储过程及返回实体在VS可视化设计器中,打开实体模型(emdx 阅读全文
摘要:
本节,直接写通过代码来学习。这些基本操作都比较简单,与这些基本操作相关的内容在之前的1至6节基本介绍完毕。· 增加:方法1:使用AddToXXX(xxx)方法:实例代码如下: using (var edm = new NorthwindEntities()){ Customers c = new Customers { CustomerID = "c#", City = "成都市", Address = "中国四川省", CompanyName = "cnblogs", Country = "中 阅读全文
摘要:
System.Data.EntityClient命名空间是 实体框架的.NET Framework数据提供程序。EntityClient提供程序使用存储特定的ADO.NET数据提供程序类和映射元数据与实体数据模型进行交互。EntityClient首先将对概念性实体执行的操作转换为对物理数据源执行的操作。然后再将物理数据源返回的结果集转换为概念性实体。EntityClient下的类有以下几个:·EntityConnection·EntityCommand·EntityConnectionStringBuilder·EntityParameter· 阅读全文
摘要:
ObjectQuery类支持对 实体数据模型(EDM)执行LINQ to Entities和Entity SQL查询。ObjectQuery还实现了一组查询生成器方法,这些方法可用于按顺序构造等效于Entity SQL的查询命令。下面是ObjectQuery的查询生成器方法以及等效的Entity SQL语句:Distinct,Except,GroupBy,Intersect,OfType,OrderBy,Select,SelectValue,Skip,Top,Union,UnionAll,Where每个查询生成器方法返回ObjectQuery的一个新实例。使用这些方法可以构造查询,而查询的结果 阅读全文
摘要:
Entity SQL是ADO.NET实体框架 提供的SQL类语言,用于支持 实体数据模型(EDM)。Entity SQL可用于对象查询和使用EntityClient提供程序执行的查询。l关键字Value关键字ESQL提供了SELECT VALUE子句以跳过隐式行构造。SELECT VALUE子句中只能指定一项。在使用这样的子句时,将不会对SELECT子句中的项构造行包装器,并且可生成所要形状的集合,例如:SELECT VALUE it FROM NorthwindEntities.Customers as itit关键字it出现在ESQL中,查询对象的别名默认值"it"改成 阅读全文
摘要:
LINQ技术(即LINQ to Entities)使开发人员能够通过使用LINQ表达式和LINQ标准查询运算符,直接从开发环境中针对 实体框架对象上下文创建灵活的强类型查询。LINQ to Entities查询使用对象服务基础结构。ObjectContext类是作为CLR对象与 实体数据模型 进行交互的主要类。开发人员通过ObjectContext构造泛型ObjectQuery实例。ObjectQuery泛型类表示一个查询,此查询返回一个由类型化实体组成的实例或集合。返回的实体对象可供更新并位于对象上下文中。以下是创建和执行LINQ to Entities查询的过程:1.从ObjectCont 阅读全文
摘要:
本节,简单的介绍EF中的ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateManager这个几个比较重要的类,它们都位于System.Data.Entity.dll下的System.Data.Objects命名空间下。在后续的章节中,我们经常会用到它们的某些方法,以便完成我们的某些操作或目的。本节,简单的说明一下以后我们可能会用到的各个类的方法,以方便我们后续的学习。ObjectContext封装.NET Framework和数据库之间的连接。此类用作“创建”、“读取”、“更新”和“删除”操作的网关。ObjectContext类为主类, 阅读全文