「要求入力の1つ有効ではありません」というエラーAzureテーブルストレージを更新しようとしたとき
-
25-09-2019 - |
質問
私はAzureテーブルストレージのエントリを更新しようとしています。機能があります:
public void SaveBug(DaBug bug)
{
bug.PartitionKey = "bugs";
bug.Timestamp = DateTime.UtcNow;
if (bug.RowKey == null || bug.RowKey == string.Empty)
{
bug.RowKey = Guid.NewGuid().ToString();
_context.AddObject(c_TableName, bug);
}
else
{
_context.AttachTo(c_TableName, bug);
_context.UpdateObject(bug);
}
_context.SaveChanges();
}
それは新しいエントリ(「bug.RowKey == nullの」パス)である場合には、は、それは罰金に動作します。それは既存のエンティティ、その後、「AttachTo」に更新され、「UpdateObjectをは」仕事を呼び出しますが、それは「SaveChangesメソッド」になったとき、それは「要求入力の一つではない有効な」例外をスローします。
格納されているクラスがある:
[DataContract]
[DataServiceKey("RowKey")]
public class DaBug
{
[DataMember]
public bool IsOpen { get; set; }
[DataMember]
public string Title { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public string SubmittedBy { get; set; }
[DataMember]
public DateTime SubmittedDate { get; set; }
[DataMember]
public string RowKey { get; set; }
public DateTime Timestamp { get; set; }
public string PartitionKey { get; set; }
}
ん誰も知っている問題は何であるか?
任意の助けてくれてありがとう。
解決
の場合には、誰もが答えを探しています:
<時間>、私はからの呼び出しを変更しなければならなかった作業テーブルのコンテキストを通じてます:
_context.AttachTo(c_TableName, bug);
と
_context.AttachTo(c_TableName, bug, "*");
他のヒント
あなたが誤ってあなたが既に(あなたが問題のコードでこの問題を取得したいということではない)使用していた値に設定した場合のrowKeyを
また、このエラーを取得することができます。私は一度に50個の以上のエンティティをプッシュしようとしたと誤って実体の2に同じ値にのrowKeyセットを持っています。
所属していません StackOverflow