Besides the great work of huysentruitw, I would also like to mention our library:
dbosoft YaNco (Yet another .NET connector): https://github.com/dbosoft/YaNco
Highlights:
- cross platform
- DI / Unit testing friendly
- based on functional programming (using Language.Ext)
- ABAP callbacks support
- commercial support / consulting services available from dbosoft.eu
License: MIT
.NET Versions: .NET 4.7.1 and higher, .NET Core 2.0 and higher, NET 5.0
Supported platforms: Windows, Linux and MacOS
Nuget: Dbosoft.YaNco
Instead of mapping from / to POCOs YaNco uses functions to map input/output of SAP RFC RFMs. This gives you a lot of flexibility in how you can map your data.
Example:
       await context.CallFunction("BAPI_COMPANYCODE_GETLIST",
                Output: f => f
                    .MapTable("COMPANYCODE_LIST", s =>
                        from code in s.GetField<string>("COMP_CODE")
                        from name in s.GetField<string>("COMP_NAME")
                        select (code, name)))
            .Match(
                r =>
                {
                    foreach (var (code, name) in r)
                    {
                        Console.WriteLine($"{code}\t{name}");
                    }
                },
                l => Console.WriteLine($"Error: {l.Message}"));