Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
darchale
Regular Visitor

Power Query/M interop with C#

Hi, I am currently in the testing/investigation stages of using Power BI at my company.

Almost all of our data sources are hidden behind http or grpc services. These services can return multiple data formats, for example: Apache Arrow, Apache Parquet, KDB/Kx, json and proprietory formats. Recently we have built an excel add-in for these services in C# using Excel DNA as the interop layer between both workbook and vba, and the add-in has a significant amount of code to do this. Ideally we would like to not repeat this work and simply call C# function within a power query/m custom connector.

 

The only thing that I can find is this quick reference to ADO.NET in a conference about building custom connectors, https://youtu.be/srQ-DLqhoxM?t=2815, however, I cannot find any further information on this or how to go about starting.

 

Please let me know if this is possible, and if it's not possible, if you can think of any other approaches to solving this. From what I can see M does not currently have the capability of deserialising arbitrary arrow, parquet or grpc data.

3 REPLIES 3
darchale
Regular Visitor

Hey @v-jingzhang, sorry, maybe I should have been more clear. My questions is actually kind of two questions in one:
1. Can M interop with C#?
For example, can I do something like either of the following:

 

MyCustomFunction = CSharp.Interop.GetFunction("MyCustomFunction")
Source = MyCustomFunction(...)  // Calls C# code under the hood

 

 or 

 

using MyCustomCSharpFunctions;   // Some external library e.g. a nuget package
shared CSharp.DataSource1 = () => MyCustomCSharpFunctions.GetDataSource1();   // Calls C# code under the hood

 

 

2. If this is not possible, does M have the ability to deserialise custom data types?

From your answer above it seems like the answer to this is no. Formats like arrow cannot be parsed in M yet?

Hi. Did you find any solution to this topic? Thanks

v-jingzhang
Community Support
Community Support

Hi @darchale 

 

You can find the most common data types used in Power Query in the following article: Data types in Power Query - Power Query | Microsoft Learn

 

And you can find the complete list of data types in the Power Query M formula language from article M Language types - PowerQuery M | Microsoft Learn

 

I'm afraid some data formats you mentioned are not supported in Power Query. 

 

Best Regards,
Community Support Team _ Jing
If this post helps, please Accept it as Solution to help other members find it.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors
Top Kudoed Authors