首页 > 代码库 > .Net Core 开发踩坑记录

.Net Core 开发踩坑记录

1.EF Net Core版本,在linux环境下,数据库版本最低配置为SQL Server 2008 SP4,否则连接数据库的时候第一次会报timeout,无论超时时间怎么加长,都会报这个错误,在windows下是一切正常的

2.EF Net Core版本,默认生成的SQL脚本是SQL Server 2014版本的,如果你的数据库不是2014版本的话,目前我在使用分页语句那边会报错。不是用EF生成的2014版本SQL语句的方式如下:

1  public class MSSQLContext : DbContext
2  {
3         public DbSet<TCBaseDataTest> TCBaseDataTests{ get; set; }
4 
5         protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
6         {
7             optionsBuilder.UseSqlServer(数据库connction, b => b.UseRowNumberForPaging());
8         }
9  }

3.EF Net Core版本,修改实体映射生成SQL表名,修改方式如下,(PS:这一点我是照搬官网的,官网使用文档地址为https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/intro)

 1 using ContosoUniversity.Models;
 2 using Microsoft.EntityFrameworkCore;
 3 
 4 namespace ContosoUniversity.Data
 5 {
 6     public class SchoolContext : DbContext
 7     {
 8         public SchoolContext(DbContextOptions<SchoolContext> options) : base(options)
 9         {
10         }
11 
12         public DbSet<Course> Courses { get; set; }
13         public DbSet<Enrollment> Enrollments { get; set; }
14         public DbSet<Student> Students { get; set; }
15 
16         protected override void OnModelCreating(ModelBuilder modelBuilder)
17         {
18             modelBuilder.Entity<Course>().ToTable("Course");
19             modelBuilder.Entity<Enrollment>().ToTable("Enrollment");
20             modelBuilder.Entity<Student>().ToTable("Student");
21         }
22     }
23 }

 4.目前MySQL官网还没有出正式版本的组件,我们的项目使用的MySQL与MySQL EF组件是SapientGuardian.MySql.Data和SapientGuardian.EntityFrameworkCore.MySql

.Net Core 开发踩坑记录