EntityFramework核心HiLo

时间:2017-08-09 12:01:09

标签: entity-framework-core

我已经读过,在Entity Framework Core HiLo模式中,“Hi”部分由数据库管理,“Lo”部分由Entity Framework在内存中管理。

实体框架如何在不往返数据库的情况下生成“Lo”部分?

如何在请求之间保持“Lo”值?

最重要的是,这种模式线程安全吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

HiLo生成器偶尔会在服务器上保留一块ID,然后根据需要使用客户端上该块的ID。您只需在保留块时点击数据库,因此如果块大小为100,则每100个ID往返一次。

是的,让多个上下文同时分配ID是安全的,因为该块是由数据库服务器原子分配的。每个DbContext实例都有自己的块。