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數據庫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM