0

私はこの機能を持っています:

private static void SaveResource(StrategicPlanningDbDataContext ctx, ResourceModel resource, int impliedID)
    {
        var existing = ctx.Resources.FirstOrDefault(r => r.ID == resource.ID) ??
                       new Resource();

        existing.ImpliedID = impliedID;
        existing.HasAccepted = resource.HasAccepted;
        existing.IsPrimary = existing.IsPrimary;
        existing.UserID = resource.UserID;

        if (existing.ID == default(int))
        {
            ctx.Resources.InsertOnSubmit(existing);
            ctx.SubmitChanges();
            resource.ID = existing.ID;
        }
    }

Cannot insert explicit value for identity column in table 'Resource' when IDENTITY_INSERT is set to OFF.new に対して ctx.SubmitChanges() を押すと、メッセージが表示されますResourceResource.IDアイデンティティです(明らかに)。関数に入ったときは 0 です (作成したばかりで、ints には明らかにデフォルト値が必要です。

dbml からテーブルを削除し、再度追加しようと何度か試みましたが、このエラーが発生し続けます。デザイナーを確認しましたが、デザイナーは[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]ID プロパティの上にあります。

何か案は?

4

1 に答える 1

0

Visual Studio を閉じて再起動したところ、すべてが改善されました。(余談ですが、.dbml からテーブルを完全に削除しても問題なくコンパイルできましたが、意味がありませんでした)。

于 2013-04-08T22:59:29.423 に答える