学习EntityFramework4.1

1.概念

    ado.net entity framework 是微软以ado.net entityframework为基础所发展出来的对象关系对应的解决方案,早期被称为objcetSpace,现已经包含在Visual studio8 Service Pacek1ji以及.net FrameEWork3.5 ServcePack1中发表。

    ado.net entity framework以EntityData Model(EDM)为主,将数据逻辑层切分分为三块,分别 Conceptual Schema, Mapping Schema 与 Storage Schema 三层。

    在4.1的EntityFramework中,支持开发者先创建实体类模型类,然后在根据实体相关的属性生成相关的数据库文件。这种方法对于开发者来说是很有好处的,首先,会让开发者从面向对象的思维角度出发,去构建业务逻辑中的实体模型,然后再根据实际的需要去生成数据库文件,是真正的面向对象的思维开发方法。 

   4.1EntityFramework增加了DbContext,连接中有详细的说明。

下载地址: Entity Framework 4.1 

2.步骤:

  一、建一个c#语言的WindowsFormsApplication项目工程命名为EntityFrameworkTest;

  二、增加一个新类Producer.cs,

 

  1. public class Producer  
  2.    {  
  3.       public int ID { getset; }  
  4.       public Tool tool { getset; }  
  5.       public string ProducerName { getset; }  
  6.       public double ItemCode { getset; }  
  7.    }  

      在我们的类中,有id这个属性,Entity框架会根据id这个属性,去生成数据库表中的对应字段id,如果类中没定义id这个属性,则会在数据库表文件中生成以“类文件名+ID”这样命名的字段。

  增加一个类Tool.cs

  1. public class Tool  
  2.    {  
  3.       public int ID { get; set; }  
  4.       public DateTime Time { get; set; }  
  5.       public double Total { get; set; }  
  6.       public ICollection<Producer> Prodcers { set; get; }  
  7.       public Tool()  
  8.       {  
  9.           Prodcers = new List<Producer>();  
  10.       }  
  11.    }  

   两个类中互相的应用将在自动创建数据库是创建内外健关系。

三、在项目中添加引用:

  如图:
 
aa

 

四、添加一个执行将模型转换数据库文件的类命名为:DoneTest.cs

 引入命名空间:using System.Data.Entity;

  1. public class DoneTest : DbContext  
  2.    {  
  3.        public DbSet<Tool> DBTools { set; get; }  
  4.   
  5.        public DbSet<Producer> DBProducer { set; get; }  
  6.    }  


 

  在form1中添加如图控件:

 

代码如下:

引入命名空间:using System.Data.Entity;

  1. /// <summary>   
  2.       /// 查询   
  3.       /// </summary>   
  4.       /// <param name="sender"></param>   
  5.       /// <param name="e"></param>  
  6.       private void button1_Click(object sender, EventArgs e)  
  7.       {  
  8.                     IQueryable<Tool> rs = from t in done.DBTools select t;  
  9.             dataGridView1.DataSource = rs.ToList();  
  10.                  }  
  11.           
  12.            
  13.   
  14.       }  
  15.   
  16.      /// <summary>   
  17.      /// 添加   
  18.      /// </summary>   
  19.      /// <param name="sender"></param>  
  20.      /// <param name="e"></param>   
  21.       private void button2_Click(object sender, EventArgs e)  
  22.       {  
  23.           using (DoneTest done = new DoneTest())  
  24.           {  
  25.               Tool t = new Tool()  
  26.               {  
  27.                   Time=DateTime.Now,  
  28.                   Total = 2000  
  29.               };  
  30.               done.DBTools.Add(t);  
  31.               done.SaveChanges();  
  32.                 
  33.                 }  
  34.       }  


五、配置app.config:

 

  1. <?xml version="1.0" encoding="utf-8" ?>  
  2. <configuration>  
  3.   
  4.   <connectionStrings>  
  5.     <add name="DoneTest" providerName="Sql.Data.SqlClient" connectionString="server=localhost;Persist Security Info=True;user id=root;password=admin;database=DoneTest"/>  
  6.   </connectionStrings>  
  7. </configuration>  

这个地方要注意:database的名字必须和定义的doneTest这个类名称一样;

在form1执行查询和添加,如果sqlserver没有此数据库将创建一个和doneTes一样名称的数据库,并且按照数据体创建对应的数据库,如果存在就将数据数据添加到数据库中。

修改数据代码:

 

  1. using (DoneTest done = new DoneTest())  
  2.            {  
  3.                Tool t = new Tool()  
  4.                {  
  5.                    id=1,  
  6.                    Total = 2000  
  7.                };  
  8.                                
  9. db.Entry(t).State = EntityState.Modified;  
  10.                done.SaveChanges();  
  11.                    }  


删除代码:

  1. using (DoneTest done = new DoneTest())  
  2.            {  
  3.                Tool t = new Tool()  
  4.                {  
  5.                    id=1,  
  6.                    Total = 2000  
  7.                };  
  8.                                db.Entry(t).State = EntityState.Delele;  
  9.                done.SaveChanges();  
  10.                          }  

本文链接地址为:http://blog.csdn.net/zyxfcb1520/article/details/6696051

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值