zoukankan      html  css  js  c++  java
  • EF Code First增删改查

    1、创建项目及下载Entity Framework

      创建项目如下:

      项目中安装Entity Framework:

    2、数据库连接、实体类及映射文件配置

      数据库连接配置文件:App.config

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      </configSections>
      <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
          <parameters>
            <parameter value="Data Source=(local); User ID=sa; Password=1; MultipleActiveResultSets=True" />
          </parameters>
        </defaultConnectionFactory>
      </entityFramework>
    </configuration>

      实体类文件:Province.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Northwind.App.Entities
    {
        public class Province
        {
            /// <summary>
            /// 省份ID
            /// </summary>
            public Guid ProvinceID { get; set; }
    
            /// <summary>
            /// 省份编号
            /// </summary>
            public string ProvinceNo { get; set; }
    
            /// <summary>
            /// 省份名称
            /// </summary>
            public string ProvinceName { get; set; }
        }
    }

      实体类映射文件:ProvinceMap.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    using System.Data.Entity.ModelConfiguration;
    using System.ComponentModel.DataAnnotations.Schema;
    
    using Northwind.App.Entities;
    
    namespace Northwind.App.Mapping
    {
        public class ProvinceMap : EntityTypeConfiguration<Province>
        {
            public ProvinceMap()
            {
                // Primary Key
                this.HasKey(t => t.ProvinceID);
    
                // Properties
                this.Property(t => t.ProvinceNo).HasMaxLength(10);
    
                this.Property(t => t.ProvinceName).HasMaxLength(50);
    
                // Table & Column Mappings
                this.ToTable("Province");
                this.Property(t => t.ProvinceID).HasColumnName("ProvinceID").HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
                this.Property(t => t.ProvinceNo).HasColumnName("ProvinceNo");
                this.Property(t => t.ProvinceName).HasColumnName("ProvinceName");
            }
        }
    }

      数据库操作上下文:NorthwindContext.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    using System.Data.Entity;
    
    using Northwind.App.Entities;
    using Northwind.App.Mapping;
    
    namespace Northwind.App
    {
        public class NorthwindContext : DbContext
        {
            public DbSet<Province> Provinces { get; set; }
    
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                modelBuilder.Configurations.Add(new ProvinceMap());
            }
        }
    }

       3、新增

      代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    using Northwind.App.Entities;
    
    namespace Northwind.App
    {
        class Program
        {
            static void Main(string[] args)
            {
                Province province = new Province { ProvinceID = Guid.NewGuid(), ProvinceNo = "100000", ProvinceName = "北京" };
                using (NorthwindContext db = new NorthwindContext())
                {
                    db.Provinces.Add(province);
                    db.SaveChanges();
                }
            }
        }
    }

      执行的Sql语句:

    exec sp_executesql N'insert [dbo].[Province]([ProvinceID], [ProvinceNo], [ProvinceName])
    values (@0, @1, @2)
    ',N'@0 uniqueidentifier,@1 nvarchar(10),@2 nvarchar(50)',@0='F0427980-6CB6-4D5B-91F5-ADE3E676DEA1',@1=N'100000',@2=N'北京'

       4、修改

      代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    using System.Data;
    
    using Northwind.App.Entities;
    
    namespace Northwind.App
    {
        class Program
        {
            static void Main(string[] args)
            {
                Province province = new Province { ProvinceID = new Guid("F0427980-6CB6-4D5B-91F5-ADE3E676DEA1"), ProvinceNo = "100000", ProvinceName = "上海" };
                using (NorthwindContext db = new NorthwindContext())
                {
                    db.Entry(province).State = EntityState.Modified;
                    db.SaveChanges();
                }
            }
        }
    }

      执行的Sql语句:

    exec sp_executesql N'update [dbo].[Province]
    set [ProvinceNo] = @0, [ProvinceName] = @1
    where ([ProvinceID] = @2)
    ',N'@0 nvarchar(10),@1 nvarchar(50),@2 uniqueidentifier',@0=N'100000',@1=N'上海',@2='F0427980-6CB6-4D5B-91F5-ADE3E676DEA1'

       5、删除

      代码1:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    using System.Data;
    
    using Northwind.App.Entities;
    
    namespace Northwind.App
    {
        class Program
        {
            static void Main(string[] args)
            {
    
                Province province = new Province { ProvinceID = new Guid("F0427980-6CB6-4D5B-91F5-ADE3E676DEA1") };
                using (NorthwindContext db = new NorthwindContext())
                {
                    db.Provinces.Attach(province);
                    db.Provinces.Remove(province);
                    db.SaveChanges();
                }
            }
        }
    }

      代码2:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    using System.Data;
    
    using Northwind.App.Entities;
    
    namespace Northwind.App
    {
        class Program
        {
            static void Main(string[] args)
            {
    
                Province province = new Province { ProvinceID = new Guid("F0427980-6CB6-4D5B-91F5-ADE3E676DEA1") };
                using (NorthwindContext db = new NorthwindContext())
                {
                    db.Entry(province).State = EntityState.Deleted;
                    db.SaveChanges();
                }
            }
        }
    }

      执行的Sql语句:

    exec sp_executesql N'delete [dbo].[Province]
    where ([ProvinceID] = @0)',N'@0 uniqueidentifier',@0='F0427980-6CB6-4D5B-91F5-ADE3E676DEA1'

       6、查询

      代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Northwind.App
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (NorthwindContext db = new NorthwindContext())
                {
                    var expr = from p in db.Provinces
                               select p;
    
                    foreach (var item in expr)
                    {
                        Console.WriteLine("{0}-{1}-{2}", item.ProvinceID, item.ProvinceNo, item.ProvinceName);
                    }
                }
            }
        }
    }

      执行的Sql语句:

    SELECT 
    [Extent1].[ProvinceID] AS [ProvinceID], 
    [Extent1].[ProvinceNo] AS [ProvinceNo], 
    [Extent1].[ProvinceName] AS [ProvinceName]
    FROM [dbo].[Province] AS [Extent1]

      以上全部代码为Entity Framework Code First的基本增删改查的操作,仅为第一步使用Entity Framework Code First操作Sql Server数据库。

  • 相关阅读:
    css常用字体
    多行文本显示省略号,点击展开隐藏
    某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的, 加密规则如下:每位数字都加上5,然后用除以10的余数代替该数字,再将第一位和第四位交换, 第二位和第三位交换,请编写一个函数,传入原文,输出密文
    编写一个函数,计算任意两个数字之间所能组成的奇数个数,数字必须是个位数。 比如:计算0~3之间能组成的奇数是: 01、03、13、21、23、31
    Redis(一) 数据结构与底层存储 & 事务 & 持久化 & lua
    IO多路复用之Reactor
    IO多路复用之select poll epoll
    五种IO模型
    kafka(五) 流式处理 kafka stream
    kafka(二) 高性能技术分析
  • 原文地址:https://www.cnblogs.com/libingql/p/2881988.html
Copyright © 2011-2022 走看看