私はこの機能を持っています:
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() を押すと、メッセージが表示されますResource
。Resource.ID
アイデンティティです(明らかに)。関数に入ったときは 0 です (作成したばかりで、int
s には明らかにデフォルト値が必要です。
dbml からテーブルを削除し、再度追加しようと何度か試みましたが、このエラーが発生し続けます。デザイナーを確認しましたが、デザイナーは[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
ID プロパティの上にあります。
何か案は?