0

SaveChanges() で例外が発生した場合にフィールドの 1 つを修正する EF コマンドを作成しようとしています。次のコード サンプルを参照してください。

        model.IMAGES.AddObject(new IMAGES
            {
                IMAGE = imageByteArray,
                IMAGE_NAME = pNum + "_OTHER.JPG",
                VIEWPOINT_ID = 279,
                ID_NO = ++id,
            });
        try
        {
            model.SaveChanges();
            Trace.WriteLine("Saved: " + pNum + "_OTHER.JPG");
        }
        catch
        {
            model.REF_PART_IMAGES.Last().VIEWPOINT_ID = 272;
            model.SaveChanges();
            Trace.WriteLine("Saved: " + pNum + "_OTHER.JPG");                
        }

Last() を呼び出すと、「LINQ to Entities はメソッド 'PullPics.IMAGES LastIMAGES' メソッドを認識しないため、このメソッドはストア式に変換できません。」がスローされます。

新しく作成されたオブジェクトにアクセスして変更する方法についてアイデアを持っている人はいますか?

4

1 に答える 1

0

私はそれを理解しました.Last()は必要ありません.元のオブジェクトへの参照を保持し、それを更新したいだけです:

    var image = new IMAGES
        {
            IMAGE = imageByteArray,
            IMAGE_NAME = pNum + "_OTHER.JPG",
            VIEWPOINT_ID = 279,
            ID_NO = ++id,
        };

    model.IMAGES.AddObject(image);
    try
    {
        model.SaveChanges();
        Trace.WriteLine("Saved: " + pNum + "_OTHER.JPG");
    }
    catch
    {
        image.VIEWPOINT_ID = 272;
        model.SaveChanges();
        Trace.WriteLine("Saved: " + pNum + "_OTHER.JPG");                
    }
于 2013-05-06T19:46:40.107 に答える