学习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,

 

 public class Producer
    {
       public int ID { get; set; }
       public Tool tool { get; set; }
       public string ProducerName { get; set; }
       public double ItemCode { get; set; }
    }

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

  增加一个类Tool.cs

 public class Tool
    {
       public int ID { get; set; }
       public DateTime Time { get; set; }
       public double Total { get; set; }
       public ICollection Prodcers { set; get; }
       public Tool()
       {
           Prodcers = new List();
       }
    }

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

三、在项目中添加引用:

  如图:
 

 

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

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

 public class DoneTest : DbContext
    {
        public DbSet DBTools { set; get; }

        public DbSet DBProducer { set; get; }
    }


 

  在form1中添加如图控件:

 

代码如下:

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

  /// 
        /// 查询
        /// 
        /// 
        /// 
        private void button1_Click(object sender, EventArgs e)
        {
                      IQueryable rs = from t in done.DBTools select t;
              dataGridView1.DataSource = rs.ToList();
                   }
          
           

        }

       /// 
       /// 添加
       /// 
       /// 
       /// 
        private void button2_Click(object sender, EventArgs e)
        {
            using (DoneTest done = new DoneTest())
            {
                Tool t = new Tool()
                {
                    Time=DateTime.Now,
                    Total = 2000
                };
                done.DBTools.Add(t);
                done.SaveChanges();
                
                  }
        }


五、配置app.config:

 




  
    
  

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

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

修改数据代码:

 

 using (DoneTest done = new DoneTest())
            {
                Tool t = new Tool()
                {
                    id=1,
                    Total = 2000
                };
                              
 db.Entry(t).State = EntityState.Modified;
                done.SaveChanges();
                    }


删除代码:

 using (DoneTest done = new DoneTest())
            {
                Tool t = new Tool()
                {
                    id=1,
                    Total = 2000
                };
                                db.Entry(t).State = EntityState.Delele;
                done.SaveChanges();
                          }


 

你可能感兴趣的:(entityframework,数据库,schema,sqlserver,button,class)