2016-03-22 2 views
4

Ich habe ein DataService mit folgendem abfragbar:Angeben von Spalten im leeren IQueryable im WCF-Datendienst?

public IQueryable<MyData> MyDataList => myDataList.AsQueryable(); 

ich zu diesem Datendienst in Excel 2016 verbinden. Alles funktioniert, aber wenn die Liste leer ist bekomme ich die folgende Fehlermeldung.

Es scheint, dass der Client (Excel) ein Objekt benötigt, um die Spalten erfolgreich zu bestimmen. Warum? Ist es möglich, den Kunden über die Spalten zu informieren, ohne ein Objekt zu benötigen?

+0

reproduziert. ist [dies] (https://social.msdn.microsoft.com/Forums/sqlserver/en-US/6836d802-1099-4908-9ba6-0cb6fd8f8854/powerpivot-empty-odata-feed-no-column-definitions? forum = sqljpowerpivotforexcel) verwandt? – dlatikay

+0

Sieht aus wie das gleiche Problem. Eine Art von Metadaten ist in der Tat erforderlich, um die Spalten erfolgreich zu füllen. – l33t

Antwort

0

Können Sie die resultierende Abfrage nicht zuerst überprüfen, um zu sehen, ob sie irgendetwas enthält und die tatsächlichen Daten oder einen Standard zurückgibt?

var defaultList = new List<MyData>(); 

public IQueryable<MyData> MyDataList = (myDataList.Any())?myDataList.AsQueryable():defaultList.AsQueryable(); 
+0

Interessante Idee; Ich fürchte, es wird keinen Unterschied auf der Empfängerseite machen, lassen Sie mich überprüfen, – dlatikay

+0

nein es verhält sich genau das gleiche (vorausgesetzt, 'myDataList' unterscheidet sich nicht von einer neuen Instanz von' List 'im leeren Fall). – dlatikay

+0

Sie müssen der Liste mindestens ein Objekt hinzufügen. Es ist eine Schwäche des Protokolls, denke ich. – l33t

Verwandte Themen