asp.net-mvc – 有人可以帮我理解为什么使用NHibernate时自动标
我已经看到很多评论(从NHibernate的角度来看)关于使用Guid而不是int(并且可能是数据库中的auto-id),结论是使用自动标识打破了UoW模式.
This post有一个简短的问题描述,但它并没有真正告诉我“为什么”它打破了模式(除非我误解了可能的情况. 有人可以开导我吗? 解决方法
有几个主要原因.
>使用Guid可以识别跨多个数据库的单个实体,包括具有相同模式但不同数据的六个关系数据库,文档数据库等.只要您有多个数据所在的单个位置,这就变得很重要. – 这也意味着你的情况:你有一个开发数据库和一个prod数据库,对吧? 评论: Random Guids不会创建糟糕的索引 – 本机地,它们会创建不良的聚簇索引.有两种解决方案. >使用部分顺序的Guid.使用NHibernate,这意味着使用guid.comb id生成器而不是guid id生成器. guid.comb在良好性能方面属于部分顺序,但保留了非常高的随机性.>让Guid主键成为非聚簇索引,并将聚簇索引放在另一个自动递增列上.您可能决定映射此列,在这种情况下,您将失去更好的批处理和更少往返的好处,但您可以重新获得容易在URL中容纳的短数字的所有好处.或者您可能决定不映射此列并使其完全保留在数据库中,您可以获得Guids作为主键的更好性能,以及NHibernate执行更少往返的更好性能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.NET MVC(4) – 按特定顺序绑定属性
- asp.net webforms路由:可选参数
- asp.net – Application_Start在工作站上工作正常,部署时不
- asp.net – Web Api 2:带内容的NotFound()?
- asp.net-mvc-3 – 从单控制器操作返回多个部分视图?
- asp.net-mvc – 将整数数组传递给webapi方法
- ASP.NET WebSite发布与复制?
- asp.net – 我有多个用户,我可以锁定网页,以便一次只有一个
- asp.net-mvc – 如何对我的ASP.NET MVC网站进行性能测试?
- asp.net-mvc-4 – 如何在Durandal中使用cshtml文件?
- asp.net使用DataTable构造Json字符串的方法
- asp.net-mvc – 在我的ASP.NET MVC网站中缓存不能
- ASP.NET MVC 3和ASP.NET MVC 4剃刀语法更改?
- 如何在多个ASP.NET请求中更新EF中的实体而不再检
- asp.net-mvc-3 – 绑定到视图模型的MVC3 Razor –
- asp.net – 链接到Microsoft编码标准/最佳实践文
- asp-classic – 如何使用经典asp中的vbscript下载
- 从IIS上的ASP.NET Core应用程序请求超时
- asp.net-mvc-3 – ASP.NET MVC DropDownListFor从
- asp.net-mvc – 在“控制器操作”中访问操作过滤