ASP.NET中的MVC学习(二)—-EF模型

   EF实体框架是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架,具体什么是ORM,百度一下吧。

     EF原理图:

        EF

            添加EF很简单,在项目中右键—添加新项—ADO.NET实体数据类型—选择对应的数据库—生成—完成—进行数据操作

            添加后的项目样式是这样的    :efceshi

              基本的数据操作是这样的:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EF测试1
{
    class Program
    {
        static void Main(string[] args)
        {
            HelloEFEntities content = new HelloEFEntities();
           #region 增加
            /*
            Student s1 = new Student() { sName="张三",sAddress="杭州"};
            content.Student.Add(s1);
            content.SaveChanges();//这句话就是EF模型中,将此行转换为sql语句
           	*/
              #endregion

            //删除
            //Student s1 = new Student() { sName = "张三" };
            //content.Student.Remove(s1);

            //修改
            Student s3 = new Student() {  sID=1 ,sName = "张三" };
            var s4 = from s in content.Student
                     where s.sID == s3.sID
                     select s;
            Student s5 = s4.FirstOrDefault();
            s5.sName = s3.sName;
            content.SaveChanges();
            //基本查找
            // LINQ TO SQL
            var s1 = from s in content.Student
                     select s.sAddress;//列出地址的信息,如果是select s就是列出全部列
            Console.WriteLine(s1.Count());//输出数目

            //条件查询
            var s2 = from s in content.Student
                     where s.sID == 2
                     select s;
            Console.WriteLine("ok");
            Console.ReadLine();
        }
    }
}

为什么用EF而不用原生的Ado.net呢?

1、极大的提高开发效率:EF是微软自己的产品,跟VS开发工具集成度比较好,开发中代码都是强类型的,写代码效率非常高,自动化程度非常高,命令式的编程。

2、EF提供的模型设计器非常强大,不仅仅带来了设计数据库的革命,也附带来的自动化生成模型代码的功能也极大的提高开发和架构设计的效率

3、EF跨数据支持是ORM框架主要功能点之一,带来的是可以通过仅仅改变配置就可以做到跨数据库的能力。

4、缺陷:性能差(生成sql脚本阶段),在复杂查询的时候生成的sql脚本效率不是很高。

附EF学习链接:http://www.cnblogs.com/fly_dragon/archive/2011/02/22/1961744.html

 http://www.cnblogs.com/han1982/p/4164474.html

Written by

说点什么

欢迎讨论

avatar

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  Subscribe  
提醒