实体框架代码第一个自定义Id



在创建模型时需要有一个自定义Id。例如。

这些是我的约束条件:

  1. 8位数。
  2. 基于约束,Id必须以特定的数字开头。

如何确保不生成重复项?我正在使用存储库模式,所以我的保存方法看起来像:

public User SaveUser(User user);

您可以确保不会生成重复项,因为它是Id =主键,必须是唯一的。一旦您尝试将实体保存为重复id,您将得到一个异常。

生成算法取决于许多其他因素,包括你想在哪里生成Id,你想如何不同新的Id,生成的逻辑有多复杂,约束如何变化,还有一个更重要的事情——你能在后续Id的序列中有一个间隙吗(例如,如果你回滚已经生成Id的事务)?您必须根据这些要求找到自己的机制。

我这样做了几次,我为序列使用了单独的表,存储每个序列类型(约束)的最后使用数+用于生成下一个序列的存储过程,存储它并将其返回给应用程序+密集锁定/限制性事务隔离级别

最新更新