1

上記の質問について誰かが私を助けてくれますか?プロジェクトでSimpleDataを使用していて、次のようにレコードを更新しようとしていますが、上記のエラーが発生します。

var releasedHosts = show_crm.tblName.Update(ID: Id, ID: newId);

エラーメッセージ:

名前付き引数「ID」を複数回指定することはできません

ありがとうございました。

コードスニペット

string siteName = ddlDeleteSite.SelectedItem.Text;
if (!siteName.Equals("Unknown-Site") && siteName != null)
        {
            int siteId = Convert.ToInt32(ddlDeleteSite.SelectedValue);
            //Update record to Attach Hostname to selected site by updating it's SiteID and remove it from 'Unknown-Site'
            var updatedSite = show_crm.tblSites.UpdateBySiteID(SiteID: siteId, Deleted: true);
            if (updatedSite != null)
            {
                var unknownSite = show_crm.tblSites.FindBySiteName("Unknown-Site");
                int unknownSiteId = unknownSite.SiteID;
                var releasedHosts = show_crm.tblHostNames.Update(new { SiteID = unknownSiteId }, new { SiteID = siteId });//(show_crm.tblHostNames.SiteID == siteId, SiteID: unknownSiteId);
            }
            lblDeleteSiteStatus.Text = ddlDeleteSite.SelectedItem.Text + " deleted successfully.";
            lblDeleteSiteStatus.Visible = true;
            RetrieveSites(ddlDeleteSite);

        }
4

1 に答える 1

1

列を基準として使用して更新する場合は、更新の基準オーバーロードのいずれかを使用する必要があります。

show_crm.tblName.UpdateAll(show_crm.tblName.ID == Id, ID: newId);

または、次の楽観的同時実行型を実行するための基準として2つのオブジェクトを指定できます。

show_crm.tblName.Update(new {ID = newId}, new {ID = Id});

後者の形式では、最初のオブジェクトには新しい値が含まれ、2番目のオブジェクトには「元の」値が含まれます。

于 2013-01-21T15:58:30.543 に答える