「要求入力の1つ有効ではありません」というエラーAzureテーブルストレージを更新しようとしたとき

StackOverflow https://stackoverflow.com/questions/2608044

質問

私は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; }
}

ん誰も知っている問題は何であるか?

任意の助けてくれてありがとう。

役に立ちましたか?

解決

の場合には、誰もが答えを探しています:

ます。http:// social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/0c9d476e-7970-422a-8b34-e987e41734dfする

<時間>

、私はからの呼び出しを変更しなければならなかった作業テーブルのコンテキストを通じてます:

_context.AttachTo(c_TableName, bug); 

_context.AttachTo(c_TableName, bug, "*"); 

他のヒント

あなたが誤ってあなたが既に(あなたが問題のコードでこの問題を取得したいということではない)使用していた値に設定した場合のrowKeyを

また、このエラーを取得することができます。私は一度に50個の以上のエンティティをプッシュしようとしたと誤って実体の2に同じ値にのrowKeyセットを持っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top