<!-- See https://github.com/nlog/nlog/wiki/Configuration-file for information on customizing logging rules and outputs. --> <targets>
<!-- add your targets here See https://github.com/nlog/NLog/wiki/Targets for possible targets. See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers. -->
<!-- Write events to a file with the date in the filename. <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${message}" /> -->
<!-- Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace) to "f" <logger name="*" minlevel="Debug" writeTo="f" /> -->
<!--All logs, including from Microsoft--> <!--minlevel 改为Trace 跟踪全部 Error 只捕获异常--> <logger name="*" minlevel="Error" writeTo="allfile" />
<!--Skip Microsoft logs and so log only own logs--> <logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" /> <logger name="*" minlevel="Trace" writeTo="ownFile-web" /> <logger name="*" minlevel="Trace" writeTo="database" /> </rules> </nlog>
XMLHttpRequest cannot load http://neil.com:8090/api/send. The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. Origin 'http://localhost:4200' is therefore not allowed access. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.
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; } } }
using EFCoreDB.Entities; using System; using System.Linq; using System.Linq.Expressions;
namespace EFCoreDB { class Program { static void Main(string[] args) { using (FinanceDigitalToolContext dbContext = new FinanceDigitalToolContext()) { Expression<Func<Book, bool>> bookExpression = b => b.BookName == "Chinese";//构造查询条件,来查询BookName为Chinese的Book
var chineseBook = dbContext.Book.First(bookExpression);//获取BookName为Chinese的Book实体chineseBook
chineseBook.BookDescription = "This is a Chinese book";//更改chineseBook的BookDescription属性 dbContext.SaveChanges();//用DbContext.SaveChanges方法保存更改到数据库
chineseBook.BookDescription = "This is a very good Chinese book";//再次更改chineseBook的BookDescription属性 dbContext.SaveChanges();//用DbContext.SaveChanges方法保存更改到数据库
=============================== EF Core log started =============================== Opening connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Opened connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Executing DbCommand [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT TOP(1) [b].[ID], [b].[BookDescription], [b].[BookName], [b].[CreateTime], [b].[ISBN] FROM [Book] AS [b] WHERE [b].[BookName] = N'Chinese' =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Executed DbCommand (129ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT TOP(1) [b].[ID], [b].[BookDescription], [b].[BookName], [b].[CreateTime], [b].[ISBN] FROM [Book] AS [b] WHERE [b].[BookName] = N'Chinese' =============================== EF Core log finished =============================== =============================== EF Core log started =============================== A data reader was disposed. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Closing connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Closed connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Context 'Book' started tracking 'FinanceDigitalToolContext' entity. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see key values. =============================== EF Core log finished ===============================
=============================== EF Core log started =============================== SaveChanges starting for 'FinanceDigitalToolContext'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== DetectChanges starting for 'FinanceDigitalToolContext'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Unchanged 'Book.BookDescription' detected as changed and will be marked as modified. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see property values. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== An 'Book' entity tracked by 'FinanceDigitalToolContext' changed from 'Unchanged' to 'Modified'. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see key values. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== DetectChanges completed for 'FinanceDigitalToolContext'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Opening connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Opened connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Beginning transaction with isolation level 'ReadCommitted'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Executing DbCommand [Parameters=[@p1='?' (DbType = Int32), @p0='?' (Size = 50)], CommandType='Text', CommandTimeout='30'] SET NOCOUNT ON; UPDATE [Book] SET [BookDescription] = @p0 WHERE [ID] = @p1; SELECT @@ROWCOUNT; =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Executed DbCommand (19ms) [Parameters=[@p1='?' (DbType = Int32), @p0='?' (Size = 50)], CommandType='Text', CommandTimeout='30'] SET NOCOUNT ON; UPDATE [Book] SET [BookDescription] = @p0 WHERE [ID] = @p1; SELECT @@ROWCOUNT; =============================== EF Core log finished =============================== =============================== EF Core log started =============================== A data reader was disposed. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Committing transaction. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Closing connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Closed connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Disposing transaction. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== An 'Book' entity tracked by 'FinanceDigitalToolContext' changed from 'Modified' to 'Unchanged'. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see key values. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== SaveChanges completed for 'FinanceDigitalToolContext' with 1 entities written to the database. =============================== EF Core log finished ===============================
=============================== EF Core log started =============================== Opening connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Opened connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Executing DbCommand [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT TOP(1) [b].[ID], [b].[BookDescription], [b].[BookName], [b].[CreateTime], [b].[ISBN] FROM [Book] AS [b] WHERE [b].[BookName] = N'Chinese' =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Executed DbCommand (21ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT TOP(1) [b].[ID], [b].[BookDescription], [b].[BookName], [b].[CreateTime], [b].[ISBN] FROM [Book] AS [b] WHERE [b].[BookName] = N'Chinese' =============================== EF Core log finished =============================== =============================== EF Core log started =============================== A data reader was disposed. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Closing connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Closed connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished ===============================
using EFCoreDB.Entities; using System; using System.Linq; using System.Linq.Expressions; using System.Transactions;
namespace EFCoreDB { class Program { static void Main(string[] args) { using (FinanceDigitalToolContext dbContext = new FinanceDigitalToolContext()) { Expression<Func<Book, bool>> bookExpression = b => b.BookName == "Chinese";//构造查询条件,来查询BookName为Chinese的Book
var chineseBook = dbContext.Book.First(bookExpression);//获取BookName为Chinese的Book实体chineseBook
//使用TransactionScope事务范围来开启一个数据库事务 using (TransactionScope transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew)) { chineseBook.BookDescription = "This is a Chinese book";//更改chineseBook的BookDescription属性 dbContext.SaveChanges();//用DbContext.SaveChanges方法保存更改到数据库,由于TransactionScope事务范围的存在,所以DbContext.SaveChanges方法提交的SQL语句都存在于TransactionScope的事务当中
chineseBook.BookDescription = "This is a very good Chinese book";//再次更改chineseBook的BookDescription属性 dbContext.SaveChanges();//用DbContext.SaveChanges方法保存更改到数据库,由于TransactionScope事务范围的存在,所以DbContext.SaveChanges方法提交的SQL语句都存在于TransactionScope的事务当中
=============================== EF Core log started =============================== Opening connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Opened connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Executing DbCommand [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT TOP(1) [b].[ID], [b].[BookDescription], [b].[BookName], [b].[CreateTime], [b].[ISBN] FROM [Book] AS [b] WHERE [b].[BookName] = N'Chinese' =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Executed DbCommand (139ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT TOP(1) [b].[ID], [b].[BookDescription], [b].[BookName], [b].[CreateTime], [b].[ISBN] FROM [Book] AS [b] WHERE [b].[BookName] = N'Chinese' =============================== EF Core log finished =============================== =============================== EF Core log started =============================== A data reader was disposed. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Closing connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Closed connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Context 'Book' started tracking 'FinanceDigitalToolContext' entity. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see key values. =============================== EF Core log finished ===============================
using (TransactionScope transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew)) {
TransactionScope的事务范围开始,此时数据库事务已经开始,EF Core没有输出日志
然后执行
1 2
chineseBook.BookDescription = "This is a Chinese book";//更改chineseBook的BookDescription属性 dbContext.SaveChanges();//用DbContext.SaveChanges方法保存更改到数据库,由于TransactionScope事务范围的存在,所以DbContext.SaveChanges方法提交的SQL语句都存在于TransactionScope的事务当中
=============================== EF Core log started =============================== SaveChanges starting for 'FinanceDigitalToolContext'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== DetectChanges starting for 'FinanceDigitalToolContext'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Unchanged 'Book.BookDescription' detected as changed and will be marked as modified. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see property values. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== An 'Book' entity tracked by 'FinanceDigitalToolContext' changed from 'Unchanged' to 'Modified'. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see key values. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== DetectChanges completed for 'FinanceDigitalToolContext'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Opening connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Opened connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Enlisted in an ambient transaction with isolation level 'Serializable'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Executing DbCommand [Parameters=[@p1='?' (DbType = Int32), @p0='?' (Size = 50)], CommandType='Text', CommandTimeout='30'] SET NOCOUNT ON; UPDATE [Book] SET [BookDescription] = @p0 WHERE [ID] = @p1; SELECT @@ROWCOUNT; =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Executed DbCommand (79ms) [Parameters=[@p1='?' (DbType = Int32), @p0='?' (Size = 50)], CommandType='Text', CommandTimeout='30'] SET NOCOUNT ON; UPDATE [Book] SET [BookDescription] = @p0 WHERE [ID] = @p1; SELECT @@ROWCOUNT; =============================== EF Core log finished =============================== =============================== EF Core log started =============================== A data reader was disposed. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== An 'Book' entity tracked by 'FinanceDigitalToolContext' changed from 'Modified' to 'Unchanged'. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see key values. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== SaveChanges completed for 'FinanceDigitalToolContext' with 1 entities written to the database. =============================== EF Core log finished ===============================
chineseBook.BookDescription = "This is a very good Chinese book";//再次更改chineseBook的BookDescription属性 dbContext.SaveChanges();//用DbContext.SaveChanges方法保存更改到数据库,由于TransactionScope事务范围的存在,所以DbContext.SaveChanges方法提交的SQL语句都存在于TransactionScope的事务当中
=============================== EF Core log started =============================== SaveChanges starting for 'FinanceDigitalToolContext'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== DetectChanges starting for 'FinanceDigitalToolContext'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Unchanged 'Book.BookDescription' detected as changed and will be marked as modified. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see property values. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== An 'Book' entity tracked by 'FinanceDigitalToolContext' changed from 'Unchanged' to 'Modified'. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see key values. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== DetectChanges completed for 'FinanceDigitalToolContext'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Executing DbCommand [Parameters=[@p1='?' (DbType = Int32), @p0='?' (Size = 50)], CommandType='Text', CommandTimeout='30'] SET NOCOUNT ON; UPDATE [Book] SET [BookDescription] = @p0 WHERE [ID] = @p1; SELECT @@ROWCOUNT; =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Executed DbCommand (22ms) [Parameters=[@p1='?' (DbType = Int32), @p0='?' (Size = 50)], CommandType='Text', CommandTimeout='30'] SET NOCOUNT ON; UPDATE [Book] SET [BookDescription] = @p0 WHERE [ID] = @p1; SELECT @@ROWCOUNT; =============================== EF Core log finished =============================== =============================== EF Core log started =============================== A data reader was disposed. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== An 'Book' entity tracked by 'FinanceDigitalToolContext' changed from 'Modified' to 'Unchanged'. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see key values. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== SaveChanges completed for 'FinanceDigitalToolContext' with 1 entities written to the database. =============================== EF Core log finished ===============================
=============================== EF Core log started =============================== Executing DbCommand [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT TOP(1) [b].[ID], [b].[BookDescription], [b].[BookName], [b].[CreateTime], [b].[ISBN] FROM [Book] AS [b] WHERE [b].[BookName] = N'Chinese' =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Executed DbCommand (24ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT TOP(1) [b].[ID], [b].[BookDescription], [b].[BookName], [b].[CreateTime], [b].[ISBN] FROM [Book] AS [b] WHERE [b].[BookName] = N'Chinese' =============================== EF Core log finished =============================== =============================== EF Core log started =============================== A data reader was disposed. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Closing connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished =============================== =============================== EF Core log started =============================== Closed connection to database 'FinanceDigitalTool' on server 'CNGDCAAITSQL01'. =============================== EF Core log finished ===============================