我想这个问题基本上更多的是关于实体框架是否可以支持这种类型的密钥生成,问题的第二部分是 RIA 服务是否可以与之集成。
它让我想起了 NHibernate 中可用的密钥生成策略的范围。
Here's an answer here表明EF没有像NHibernate那样“开箱即用”的全面支持:
不幸的是,EF 没有像 NHibernate 那样非常接近 POID 生成器的东西,尽管我听说类似的功能将包含在 EF 的下一个版本中。
来自HiLO 的实体框架
这个答案表明,在 RIA 服务中拦截 Save(特别是插入)并调用 SPROC 以获取新 ID 并不太棘手
您只需要调用存储过程来获取一个值,然后再保存记录 [可以将其放入] 在您的上下文中覆盖的 SaveChanges()
请参阅https://stackoverflow.com/a/5924487/5351以回答在实体框架 4.1 代码优先中手动生成主键的最佳方法是什么
和一个类似的答案在这里...... https://stackoverflow.com/a/5277642/5351
以下是一些关于可能使用 EF 实现 HiLo 生成器(一种更强大的密钥生成模式)的发现:
Hi/Lo 模式描述了一种在客户端而不是数据库上生成安全 ID 的机制。在这种情况下,安全意味着没有碰撞。这种模式之所以有趣,有以下三个原因:
- 它不会破坏工作单元模式(检查这个链接和另一个)
- 它不需要像其他 DBMS 中的序列生成器那样多次往返。
- 与 GUID 技术不同,它生成人类可读的标识符。
来自http://joseoncode.com/2011/03/23/hilo-for-entityframework/