zoukankan      html  css  js  c++  java
  • Entity Framework(EF的Database First方法)

    EntityFramework,是Microsoft的一款ORM(Object-Relation-Mapping)框架。同其它ORM(如,NHibernate,Hibernate)一样,

    一是为了使开发人员以操作对象的方式去操作关系型数据表。

    二是为了屏蔽底层不同厂商的数据库,开发人员面向ORM框架编写数据的CRUD(Create,Retrieve,Update,Delete)操作,再由ORM框架将这些操作翻译成不同数据库厂商的语言。

    从EF 4.X开始支持三种构建方法:1. Database First方法。2.Model First方法。3.Code First 方法。

    本次测试以Visual Studio2013 / MS Sql Server2012 / Entity Framework 6.X 测试EF 

    Database First Demo

    1:打开SQLServer2012,使用下面SQL文本创建MyFirstEF数据库及CustomerInfo/OrderInfo表格

    create database MyFirstEF
    on primary
    (
        name='MyFirstEF.mdf',
        --修改为自己电脑上SQL DB路径
        filename='D:yangZ_MSSQLMyFirstEF.mdf',
        size=5mb,
        maxsize=100mb,
        filegrowth=10%
    )
    log on
    (
        name='MyFirstEF_log.ldf',
        --修改为自己电脑上SQL DB路径
        filename='D:yangZ_MSSQLMyFirstEF_log.ldf',
        size=2mb,
        maxsize=100mb,
        filegrowth=5mb
    )
    go
    
    use MyFirstEF
    go
    
    create table CustomerInfo
    (
        id int identity(1,1) primary key,
        customerName nvarchar(100) not null,
        customerDate datetime
    )
    go
    
    create table OrderInfo
    (
      id int identity(1,1) primary key,
      orderName nvarchar(100),
      customerId int
    )
    go
    
    alter table OrderInfo
    add constraint FK_OrderInfo_CustomerInfo foreign key(customerId) references CustomerInfo(id)
    go
    
    insert into CustomerInfo 
    select 'aa',GETDATE() union all
    select 'bb',GETDATE() union all
    select 'cc',GETDATE() union all
    select 'dd',GETDATE() 
    go
    
    insert into OrderInfo
    select 'bike1',2 union all
    select 'bike2',2 union all
    select 'car1',3 union all
    select 'car2',3 union all
    select 'chezi1',4 union all
    select 'chezi2',4 
    go
    
    select * from CustomerInfo
    go
    
    select * from OrderInfo
    go
    --create SQL

    2:新建ConsoleApplication应用程序

    3:在EFDataBaseFirstDemo上 右键-->新建-->新建项-->数据-->ADO.NET实体数据模型,选择从数据库生成(Database First)

    选择数据库,用户名,密码等,这和普通的链接数据库操作一样,最后生成的配置文件会保存在App.config文件中

    点击下一步,选择数据库表格,这里我们选择CustomerInfo 和OrderInfo表格,勾选[确定所生成对象名称的单复数形式][在模型中包含外键列]

    模型命名空间可以修改为自己需要的,这里我使用默认的模型命名空间

    点击完成,可能会出现以下警告,直接点击[确定],生成的EF实体图本质是xml

    EF实体图,这时候记得点击保存按钮(Ctrl+S),保存生成的EF实体图

    最后整个项目源码结构如下图所示:

    最后在ConsoleApplication中做一个简单的查询Demo

    DbContext context = new MyFirstEFEntities();
    
    var rows = context.Set<CustomerInfo>().Select(c => c.customerName);
    foreach (var row in rows)
    {
        Console.WriteLine(row);
    }
    Console.WriteLine("Database First Finish");
    Console.ReadKey();

    PS:使用EF Database First时,若修改数据库表结构,或者字段,需要在**.edmx中做如下操作,然后点击保存

     

  • 相关阅读:
    knn分类算法学习
    七、rdd究竟是什么
    六、spark常见问题总结(转载)
    五、RDD持久化
    四、spark常用函数说明学习
    三、spark入门:文本中发现5个最常用的word,排除常用停用词
    二、spark入门之spark shell:文本中发现5个最常用的word
    1. 动手学深度学习基础
    anaconda遇到:Solving environment: failed with initial frozen solve. Retrying with flexible solve.问题
    neo4j中重复节点问题
  • 原文地址:https://www.cnblogs.com/DrHao/p/5367147.html
Copyright © 2011-2022 走看看