1. 程式人生 > >EF Core 2.0中開啟Transaction事務會對DbContext創建和關閉數據庫連接的行為有所影響

EF Core 2.0中開啟Transaction事務會對DbContext創建和關閉數據庫連接的行為有所影響

dup .net core compute har sin locks png 技術分享 dbcontext

我們先在數據庫中建立一個Book表:

CREATE TABLE [dbo].[Book](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [BookName] [nvarchar](50) NULL,
    [BookDescription] [nvarchar](50) NULL,
    [ISBN] [nvarchar](20) NULL,
    [CreateTime] [datetime] NULL,
 CONSTRAINT [PK_Book] PRIMARY KEY CLUSTERED 
(
    [ID] ASC
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [dbo].[Book] ADD CONSTRAINT [DF_Book_CreateTime] DEFAULT (getdate()) FOR [CreateTime] GO

然後插入如下數據:

INSERT [dbo].[Book] ([BookName
], [BookDescription], [ISBN]) VALUES (NChinese, NChinese, N0001) GO INSERT [dbo].[Book] ([BookName], [BookDescription], [ISBN]) VALUES (NEnglish, NEnglish, N0002) GO INSERT [dbo].[Book] ([BookName], [BookDescription], [ISBN]) VALUES (NJapanese, NJapanese, N0003) GO INSERT [dbo].[Book]
([BookName], [BookDescription], [ISBN]) VALUES (NRussian, NRussian, N0004) GO INSERT [dbo].[Book] ([BookName], [BookDescription], [ISBN]) VALUES (NItalian, NItalian, N0005) GO

查詢Book表的數據,如下圖所示:

技術分享圖片

現在我們使用EF Core將Book表映射到.NET Core控制臺項目中的Book實體上,Book實體如下所示:

using System;
using System.Collections.Generic;

namespace EFCoreDB.Entities
{
    public partial class Book
    {
        public int Id { get; set; }
        public string BookName { get; set; }
        public string BookDescription { get; set; }
        public string Isbn { get; set; }
        public DateTime? CreateTime { get; set; }
    }
}

EF Core 2.0中開啟Transaction事務會對DbContext創建和關閉數據庫連接的行為有所影響