自动增加sql列问题?

时间:2014-06-01 05:29:54

标签: c# asp.net sql database petapoco

我有一个带有自动增量列的sql表,我设置了身份增量= 1。 我用peta poco课程添加我的记录如下:

[Scope("ProductID")]
    [TableName("TblColors"]
    [PrimaryKey("ProductColorID", AutoIncrement = true)]
    [Cacheable("ProductColorInfo", CacheItemPriority.Default, 20)]
    public class ProductColorInfo
    {
        public int ProductColorID { get; set; }
        public int ProductID { get; set; }
        public int ColorID { get; set; }
        public string Name { get; set; }
        public string Caption { get; set; }
        public string ImageName { get; set; }
        public float Cost { get; set; }
    }

public int AddColor(ProductColorInfo item)
    {
        using (IDataContext ctx = DataContext.Instance())
        {
            try
            {
                ctx.BeginTransaction();

                var rep = ctx.GetRepository<ProductColorInfo>();
                rep.Insert(item);

                // get last Color ID from a stored procedure
                var LastID = ctx.ExecuteScalar<int>(System.Data.CommandType.StoredProcedure, "spGetLastRecordID", "ProductColorID");
                if (LastID < 1)
                    throw new Exception("Can not Get Last ProductColorID");

                ctx.Commit();
                return LastID ;
            }
            catch
            {
                ctx.RollbackTransaction();
                return -1;
            }
        }
    }

效果很好。但当我检查我的表时,有时我的自动增量列“ProductColorID”,增加超过1.我知道如果我删除一些记录,我将有差距。但是ProductColorID之间的增加不仅仅是一些已删除的记录。我的意思是如果我的最后一个ProductColorID是120,下次我添加一条记录时,新的ProductColorID变为100065! 我确定我从未添加100065记录然后删除它们。 它发生了几次,我找不到时间,地点和原因?

我的自动标识列有什么问题?

0 个答案:

没有答案