我有这个功能:
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.
点击 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 属性。
有任何想法吗?