11 2013 档案
摘要:单例模式:核心思想:类只实例化一次,并且提供一个全局访问点。(只有那个全局访问点对外开放,其他内容封装起来)图片解析:优点:1》由于实例是在Instance属性方法内部创建的,因此类可以使用附加功能2》直到对象要求产生一个实例才执行实例化;这种方法称为“惰性实例化”。惰性实例化避免了在应用程序启动时实例化不必要的singleton。代码:第一版本:(在单线程里面使用(不考虑线程内安全问题))主要分为三步:1、静态实例变量(用于接收实例成员)2、构造函数私有化(外部不能实例化,不能获得实例)3、全局访问点(任何用户都从这里访问) 1 //sealed:私有类:太监类(不能被继承) 2 ...
阅读全文
摘要:1、透视原理:就是将查询结果进行转置下面就举例来说明:执行下面语句:检查是否含有表 dbo.Orders,如果有就将表删除:1 if OBJECT_ID('dbo.Orders','U') is not null2 drop table dbo.Orders然后创建表dbo.Orders:1 create table dbo.Orders2 (3 orderid int not null primary key,4 empid int not null,5 custid int not null,6 orderdate datetime,7 qty int8 )
阅读全文
摘要:1、派生表实质:就是特殊的子查询(将查询结果放在from后面)含有一张Order表:看下面的sql语句:1 select2 orderid,orderdate,custid3 from4 (5 select6 orderid,orderdate,custid,ROW_NUMBER() over(order by orderid) as rownum--列明必须起别名7 from [Sales.Orders]8 ) as t--表名必须起别名需要注意的特殊之处:查询出来的表要起别名,子查询里面的字段名也要起别名2、CTE(公共表的表达式)1)语法规范:1 with use_c...
阅读全文
摘要:三张数据表关系如图:其实出现表循环依赖情况:就是 同时 ConfigCompany和 Department 也有依赖,就会报错,说有循环依赖,就会报错。所以 这个时候的解决办法:可以改 在数据库中建立联系 改成 逻辑 中建立关系。在EF里面就是 建立ConfigCompany 和 Department 表的 一对多的关系 值保留 ConfigCompany 的 主键的外键,但是不含有 ConfigCompany的 对象字段
阅读全文
摘要:使用一个简单的例子,说明他们之间的区别使用的表:[Sales.Orders]订单表和[Sales.Customers]客户表,和上一篇博客的表相同业务要求:查询出 : 所有的用户 在2012-10-10 16:44:51.000订单数量通常筛选条件都会添加到连接外面 where 里面,例如:1 select2 c.custid,count(o.orderid)3 from [Sales.Customers] c left join [Sales.Orders] o4 on c.custid=o.custid5 where o.orderdate='2012-10-10 16:44:51
阅读全文
摘要:1、首先我们来先看一个简单的例子:有[Sales.Orders]订单表和[Sales.Customers]顾客表,表的机构如下业务要求:筛选 来自“按时打算”国家的用户以及所下的订单数1 select2 o.custid,COUNT(*) as '订单数'3 from [Sales.Orders] o inner join [Sales.Customers] c4 on o.custid=c.custid5 where c.country='按时打算'6 group by o.custid;这样简单的查询,大家都能够看明白,就不再解释,就是使用了一个 内连接,和
阅读全文
摘要:1、交叉连接(就是将两张表的数据 交叉组合在一起)有两张表 客户表:[Sales.Customers] 和订单表:[Sales.Orders]。业务需求:实现 Customer中custid(客户Id) 和 Orders表中的 Orderid的 交叉连接1 select 2 c.custid,o.orderid3 from [Sales.Customers] as c cross join [Sales.Orders] as o实现效果:2、内连接(使用最多的):inner join业务要求:查询出:Order对应的 Customer中的所有客户的所有订单1 select c.custid,o
阅读全文
摘要:1、独立子查询:顾名思义:就是子查询和外层查询不存在任何联系,是独立于外层查询的:下面就看一个例子:有一张订单表 Sales.Order 和一张 客户表 Sales.Customer下面的sql 语句是为了查询出Sales.Customer里 custid(用户id)不在Sales.Order 的custid1 select custid 2 from [Sales.Customers]3 where custid not in 4 (5 select custid 6 from [Sales.Orders]7 ) 2、相关子查询:顾名思义:就是子查询里面的条件依赖于外层查询的数据下面...
阅读全文
摘要:首先我们生成两张对应表: public class Client { public int ClientID { set; get; } public string ClientName { set; get; } //此时 这个 Address 并不想要在数据库里面 生成对应的 数据表, 比如我们要丰富 业务逻辑,想要设置必填项, //想要 把这个 复杂的属性 映射到 表中的字段 //要想要 生成到 Client 对应的 字段 使用 标注就不能实现了,,所以这时 要在 构建器里面进行设置 pub...
阅读全文
摘要:默认情况下,EF4.1是只查询到涉及到的数据对象,但是EF4.1支持两种方法进行控制其加载:1、贪婪加载2、延迟加载使用的表还是上次使用的Order 和 OrderDetails两张表来举例说明1、贪婪加载看下面一段代码:1 var orders = from o in db.Orders.Include("OrderDetails")2 where o.CustormName == "xiaoxiao"3 select o;我们可以 直接Tost...
阅读全文
摘要:覆盖EF默认的约定可以通过两种方式:1、拦截模型构建器,使用流畅的API2、通过给 类添加标签好的,我还用之前定义的订单类来做例子: public class Order { public int OrderId { set; get; } public string OrderCode { set; get; } public string CustormName { set; get; } }模型构建器使用构建器,就必须要重写 方法:OnModelCreating protected...
阅读全文
摘要:Code First:顾名思义:就是通过代码生成数据库----通过类生成数据库中对应的表:首先定义两个类(就是建模的过程): 1 public class Order 2 { 3 public int OrderId { set; get; } 4 5 public string OrderCode { set; get; } 6 7 public string CustormName { set; get; } 8 9 public ICollection OrderDeta...
阅读全文
摘要:通过代码 进行连接和创建数据库的方法主要分为两种:1、使用用连接字符串(在配置文件里面):连接字符串:1 这里需要注意的几点: 1》这个 providerName="System.data.SqlClient" 在EF4.1里面是必须有的,没有就会报错,为什么现在我也不知道,如果有知道的,希望能告诉一声,感激不尽。2》Integrated Security=true;这个是在 当修改 模型的之后 和数据库架构进行比对,发现不同的时候就会将数据库删除重建,这是要删除数据库的就要 告诉数据库此操作是安全的2、通过base 进行连接(要结合构造函数)1》如果 不想 继承的 父类的
阅读全文
摘要:当使用的EF的时候,我们都知道EF当实体模型与数据库的架构不同时要删除数据库,这是会把错:无法创建与 'master' 数据库之间的连接,这是因为已打开原始数据库连接,并且已从连接字符串中删除凭据。请提供未打开的连接 解决方法这个是时候,是因为权限安全问题,因为这时 要删除数据库,涉及到安全问题,没有声明此次操作是安全,所以就会阻止住执行,不会将数据库输出掉。 只要在连接字符串里面 添加Integrated Security=true就可以了
阅读全文

浙公网安备 33010602011771号