Mat*_*zen 9 c# guid entity-framework-core
如果我的模型具有类型的键Guid,那么在构造函数中显式设置ID是不好的做法吗?
我知道它将由Entity Framework隐式设置,但是通过明确设置它会发生什么不好的事情(可能是性能明智的)?
例:
class MyModel
{
public MyModel()
{
Id = Guid.NewGuid();
}
[Key]
public Guid Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我认为GuidSQL服务器中的顺序ID支持,如果我明确设置了一个值,我想我会降低索引性能,因为它不再是顺序的?
我一直无法找到答案,我对此非常好奇.
Mat*_*zer 11
我看到了设计缺陷而不是性能问题:模型不应该生成它们id.这是他们的责任.存储库在Add方法中执行此操作.
Guid可以通过多种方式生成:例如,它可以是随机的或顺序的.无论采用哪种方式生成它们都有不同的算法.因此,您只需选择一个选项即可.
并且你正在强制id分配模型的时刻:你不想要这样做以延迟它的分配,直到模型可能需要被持久化.例如,零Guid 可能有助于知道某些模型尚未持久化.
| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |