我正在寻找一种检查我的主键是否设置为自动增量的方法。
感谢任何帮助/建议!
编辑:
我有通用表格,例如(我的Crud设计目前不完整)
MyTestForm2上的工具条会改变3个按钮的位置,添加,编辑和观看
我问这个问题的原因是:在我提供的示例中,字段CB_REFNO是主键+它是自动递增的。在添加/编辑时我希望该文本框的启用属性设置为false,但如果它不是自动递增,则用户需要设置它或能够编辑它。这就是我问这个问题的原因
答案 0 :(得分:0)
我提出了一个解决方案,但不是绝对的解决方案。如果您的主键是int类型且不是自动递增,那么将无法工作,因此只要您在A
中只有int类型主键public static bool MyIsAutoIncrement<TEntity>(this DbContext pContext) where TEntity : class
{
var objectContext = ((IObjectContextAdapter)pContext).ObjectContext;
var set = objectContext.CreateObjectSet<TEntity>();
var myPkTypeKind = (PrimitiveTypeKind)set.EntitySet.ElementType.KeyMembers[0].GetPropValue("PrimitiveType").GetPropValue("PrimitiveTypeKind");
switch (myPkTypeKind)
{
case PrimitiveTypeKind.Int16:
return true;
case PrimitiveTypeKind.Int32:
return true;
case PrimitiveTypeKind.Int64:
return true;
}
return false;
}