.net 5.0 不支持 LINQ to SQL?

LINQ to SQL not supported in .net 5.0?

我的项目使用 .NetFramework 4.6.2 和来自 MSSQL 的“LINQ to SQL”查询。 A class 定义所有需要在数据库中查询并继承到 DataContext(System.Data.Linq).

的表

最近准备把程序升级到.net5.0。 但是,我发现“LINQ to SQL”似乎不支持 .net5.0。

谁能建议如何在 .net5.0 中或使用其他方式编写“LINQ to SQL”?

谢谢。

--

4 月 23 日 PM6:38 更新: 刚刚在Nuget上找到了SqlSugarCore,测试可以使用。但是还是想知道有没有类似的工具可以用?

我试过使用 EFCore 并且成功了。

只需在 NuGet 中安装 Microsoft.EntityFrameworkCoreMicrosoft.EntityFrameworkCore.SqlServer

将显示的错误从 L2S 替换为 EFCore。示例:DataContext(L2S) => DbContext(EFCOre), public Table TableA; (L2S) => public DbSet TableA { get;放; }(EFCore)...等等

请注意,如果您的 table 有多个主键,那么您必须如下编写 override OnModelCreating,TableAClass有3个键,TableBClass有1个键。

。每个table

的设置键
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 });
        }

我卡住了几天,在网上找不到例子。因此,我决定将我的代码放在这里。

。设置数据库Class

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;
        }


    }

。设置Table Class

[Table("TableName")]
    public class TableClassName
    {
        public string ColumnA { get; set;}

        public string ColumnB { get; set;}

    }

这个回答应该归功于所有在评论中帮助我的人。