Mi proyecto usó .NetFramework 4.6.2 con la consulta "LINQ to SQL" de MSSQL. Una clase define todas las tablas que se necesitan consultar en la base de datos y la herencia a DataContext (System.Data.Linq).
Recientemente, voy a actualizar el programa a .net5.0. Sin embargo, descubrí que "LINQ to SQL" parece no ser compatible con .net5.0.
¿Alguien podría aconsejarme cómo escribir "LINQ to SQL" en .net5.0 o usar otras formas, por favor?
Gracias.
--
23 de abril PM6:38 Actualización: Acabo de encontrar SqlSugarCore en Nuget y probé que está bien usarlo. Pero aún me pregunto si hay alguna herramienta similar que pueda usar.
He intentado usar EFCore y funciona.
Simplemente instale Microsoft.EntityFrameworkCore y Microsoft.EntityFrameworkCore.SqlServer en NuGet.
Reemplace los errores mostrados de L2S a EFCore. Ejemplo: DataContext( L2S ) => DbContext( EFCOre ), public Table TableA;( L2S ) => public DbSet TableA { get; colocar; }( EFCore )... etc.
Tenga cuidado de que si su tabla tiene más de una clave principal, entonces debe escribir anular OnModelCreating como se muestra a continuación, TableAClass tiene tres claves y TableBClass tiene una clave.
。Configurar clave de por mesa
protected override void OnModelCreating(ModelBuilder _modelBuilder) { _modelBuilder.Entity<TableAClass>().HasKey(_obj => new { _obj.Key1, _obj.Key2, _obj.Key3 }); _modelBuilder.Entity<TableBClass>().HasKey(_obj => new { _obj.Key1 }); }Me quedé atascado unos días y no pude encontrar un ejemplo en Internet. Por lo tanto, decidí poner mi código aquí.
。Configurar clase de base de datos
public class DBClassName : DbContext { public DbSet<TableAClass> TableAs { get; set; } public DbSet<TableBClass> TableBs { get; set; } protected override void OnModelCreating(ModelBuilder _modelBuilder) { _modelBuilder.Entity<TableAClass>().HasKey(_obj => new { _obj.Key1, _obj.Key2, _obj.Key3 }); _modelBuilder.Entity<TableBClass>().HasKey(_obj => new { _obj.Key1 }); } public DBClassName(string _connStr) : base(GetOptions(_connStr)) { } private static DbContextOptions GetOptions(string connectionString) { return SqlServerDbContextOptionsExtensions.UseSqlServer(new DbContextOptionsBuilder<DBClassName>(), connectionString).Options; } }。Clase de tabla de configuración
[Table("TableName")] public class TableClassName { public string ColumnA { get; set;} public string ColumnB { get; set;} }Esta respuesta debería acreditar a todos los que me ayudaron en los comentarios.