如何在ef5中实现键台样式身份方法
"使用数据库中的表存储下一个ID,每当需要一个新的ID块时,从Lightspeed
中就会提高此值我相信这就像甲骨文序列。
这感觉应该很容易(就像在Lightspeed中一样)。这为ORM提供了一种简单的散装插入方法,即一次可以获得10个身份,然后将大量插入到DB中。
正在使用EF5/WCF RIA服务(最新)与Silverlight交谈。该项目的其余部分使用批量插入SSIS。因此,我需要遵循此公约。
我猜这个问题从根本上是关于实体框架是否可以支持这种关键生成方式,而问题的次要部分是RIA服务是否会与之整合。
它使我想起了NHIBERNATE中可用的一系列关键发电策略。
这里是一个答案,表明EF没有像"开箱即用"那样全力支持:
不幸的是,EF与Poid没有任何很近的东西 像Nhibernate这样的发电机确实如此,尽管我听到谣言相似 功能将包含在EF。
的下一个版本中
来自Hilo的实体框架
此答案表明,在RIA服务中拦截保存(特别是插入)并致电Sproc以获取新ID
并不是太棘手了。您只需要调用存储过程才能获取一个值 要保存记录[可以将其放入] savechanges()在您的上下文中
请参阅https://stackoverflow.com/a/5924487/5351回答什么是在实体框架中手动生成主键的最佳方法是4.1代码。
和类似的答案... https://stackoverflow.com/a/5277642/5351
以下是一些可能通过EF实现Hilo Generator(更强大的键gen模式)的发现:
HI/LO模式描述了一种生成安全ID的机制 客户端而不是数据库。在这种情况下安全意味着 没有冲突。这种模式很有趣,原因有三个:
- 它不会打破工作模式单位(检查此链接,另一个链接)
- 它不需要许多往返作为其他DBMS中的序列发生器。
- 与GUID技术不同。
来自http://joseoncode.com/2011/03/23/hilo-for-entityframework/