0
アプリケーションでは、現在、指定されたコレクションを指すURIのみがあります。このコレクションで私はストアドプロシージャを書いた。 procは動作しますが、問題はありませんが、.NETアプリケーション内から実行する必要があります。 特定のコレクションのURIから始まるストアドプロシージャを実行するにはどうすればいいですか?
は、私はいくつかの掘削を行なったし、次のようなアプローチが見つかりました:私のURIが既に声明Database db = _documentDbClient.CreateDatabaseQuery().Where(d => d.Id == "XXXX")
が失敗したコレクションを指しているので
public DataOverview GeneralOverviewByClient(int clientId, DateTime? fromDate = null, DateTime? toDate = null)
{
DataOverview result = null;
// Get a Database by querying for it by id
Database db = _documentDbClient.CreateDatabaseQuery().Where(d => d.Id == "XXXX")
.AsEnumerable()
.Single();
// Use that Database's SelfLink to query for a DocumentCollection by id
DocumentCollection collection = _documentDbClient.CreateDocumentCollectionQuery(db.SelfLink).Where(c => c.Id == "YYYY")
.AsEnumerable()
.Single();
StoredProcedure storedProcedure = _documentDbClient.CreateStoredProcedureQuery(new Uri(collection.StoredProceduresLink)).Where(p => p.Id == "spGetData")
.AsEnumerable()
.FirstOrDefault();
if (storedProcedure != null)
{
var response = _documentDbClient.ExecuteStoredProcedureAsync<DataOverview >(storedProcedure.SelfLink, clientId, fromDate, toDate);
result = response.Result;
}
return result;
}
しかし、それは、動作しませんが。
私は私がにコードを書き換えることができ、(少なくとも、それはそれは私には思えた方法です)掘り続け、私はストアドプロシージャの名前を渡すことができたに過負荷が見つかりました:
var response = _documentDbClient.ExecuteStoredProcedureAsync<DataOverview>("spGetData", clientId, fromDate, toDate);
if (response != null) { result = response.Response; }
しかし、私はまだ結果が得られていません。私は何が間違っている/間違っていますか?