2017-12-20 6 views
0

DynamicObjectから派生したクラスに属する一連のドキュメントをアップロードしようとしています。索引が再作成されたときに索引フィールドが変更される可能性があるため、これが必要です。インデックスはIsKeyがtrueに設定フラグを持つフィールドが含まれているので、これは私にはどんな意味がありませんDynamicObjectsを使用したAzure検索インデックスの作成

Microsoft.Rest.Azure.CloudException: 'The request is invalid. Details: actions : 0: Document key cannot be missing or empty. 

:すべては文書をアップロードするときただし、エラーがスローされ、インデックス作成と正常に動作しますまた、文書には対応するフィールドが正しく設定されています。 DynamicObjectからドキュメントクラスを派生させたコードをコメントアウトすると、すべて正常に動作することにも言及する価値があります。

これを経験したことがありますか?どうもありがとう!

答えて

1

あなたのドキュメントタイプはDynamicObjectから継承されるので、静的プロパティと動的プロパティの両方を持っていると仮定します。ドキュメントオブジェクトが正しくシリアル化されていることを確認してください。

これを行うには、GetDynamicMemberNamesメソッドをオーバーライドして、動的プロパティと静的プロパティの両方の名前を返すことができます。次のコードは、このトリックを行う必要があります。

public override IEnumerable<string> GetDynamicMemberNames() 
{ 
    return base.GetDynamicMemberNames().Concat(this.GetType().GetProperties().Select(p => p.Name)); 
} 
+0

静的プロパティと動的プロパティの両方を使用すると仮定しても間違いありません。大変ありがとうございました、あなたのお勧めはトリックでした! –

関連する問題