首先我们生成两张对应表: public class Client { public int ClientID { set; get; } public string ClientName { set; get; } //此时 这个 Address 并不想要在数据库里面 生成对应的 数据表, 比如我们要丰富 业务逻辑,想要设置必填项, //想要 把这个 复杂的属性 映射到 表中的字段 //要想要 生成到 Client 对应的 字段 使用 标注就不能实现了,,所以这时 要在 构建器里面进行设置 pub... Read More
posted @ 2013-11-13 20:03 小小gogo Views(332) Comments(0) Diggs(0) Edit
默认情况下,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... Read More
posted @ 2013-11-13 19:38 小小gogo Views(1047) Comments(0) Diggs(0) Edit
覆盖EF默认的约定可以通过两种方式:1、拦截模型构建器,使用流畅的API2、通过给 类添加标签好的,我还用之前定义的订单类来做例子: public class Order { public int OrderId { set; get; } public string OrderCode { set; get; } public string CustormName { set; get; } }模型构建器使用构建器,就必须要重写 方法:OnModelCreating protected... Read More
posted @ 2013-11-12 13:58 小小gogo Views(928) Comments(0) Diggs(0) Edit
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... Read More
posted @ 2013-11-12 13:20 小小gogo Views(1009) Comments(1) Diggs(0) Edit
通过代码 进行连接和创建数据库的方法主要分为两种:1、使用用连接字符串(在配置文件里面):连接字符串:1 这里需要注意的几点: 1》这个 providerName="System.data.SqlClient" 在EF4.1里面是必须有的,没有就会报错,为什么现在我也不知道,如果有知道的,希望能告诉一声,感激不尽。2》Integrated Security=true;这个是在 当修改 模型的之后 和数据库架构进行比对,发现不同的时候就会将数据库删除重建,这是要删除数据库的就要 告诉数据库此操作是安全的2、通过base 进行连接(要结合构造函数)1》如果 不想 继承的 父类的 Read More
posted @ 2013-11-12 12:44 小小gogo Views(839) Comments(0) Diggs(0) Edit
当使用的EF的时候,我们都知道EF当实体模型与数据库的架构不同时要删除数据库,这是会把错:无法创建与 'master' 数据库之间的连接,这是因为已打开原始数据库连接,并且已从连接字符串中删除凭据。请提供未打开的连接 解决方法这个是时候,是因为权限安全问题,因为这时 要删除数据库,涉及到安全问题,没有声明此次操作是安全,所以就会阻止住执行,不会将数据库输出掉。 只要在连接字符串里面 添加Integrated Security=true就可以了 Read More
posted @ 2013-11-09 15:43 小小gogo Views(327) Comments(0) Diggs(0) Edit