我有一个棕色字段SQL Server 2005数据库,它使用标准的,未排序的GUID作为大多数主键值以及聚簇索引(这对性能有害).
我该如何将这些更改为顺序GUID?其中一个挑战是在更改每个主键时替换所有外键值.
您知道要执行此类转换的任何工具或脚本吗?
我正在大脑冻结.我有一个n个GUID数组,并且所有这些都将具有完整的零,或者它们都不会.我试图想出一个简洁的Linq查询,如果它们都包含"00000000-0000-0000-0000-000000000000",那么它将是真或假,但不能,所以我在这里.有人可以帮忙吗?
谢谢.
我正在开发一个客户端/服务器应用程序,需要根据硬盘序列号和物理适配器MAC地址为每个注册客户端分配一个唯一的标识符...但我不喜欢使用ManagementObjectSearcher或任何WMI解决方案,因为它们很慢.如何使用本机方法获取这些值?
我在我的项目中使用NHibernate并准备发布新版本.我读到GUID.COMB和HI/LO比数据库生成的身份更快.然后,我决定继续使用GUID.COMB,但我不知道如何在不破坏表关系的情况下将现有主键转换为GUID.
我需要建议.
Cloud Foundry应用程序/ stats api(/ v2 / apps /:guid / stats)提供了CF应用程序每个实例的详细信息。
但是它仅给出实例索引(例如:“ 0”,“ 1”,“ 2”等)
CF App Stats API:http://apidocs.cloudfoundry.org/222/apps/get_detailed_stats_for_a_started_app.html
GET on https://api.ng.bluemix.net/v2/apps/<app-guid>/stats
Run Code Online (Sandbox Code Playgroud)
样本回复:
{
"0":
{
"state": "RUNNING",
"stats":
{
"name": "testlibappcf",
"uris":
[
"testlibappcf.mybluemix.net"
],
"host": "169.54.206.30",
"port": 61814,
"uptime": 84972,
"mem_quota": 536870912,
"disk_quota": 1073741824,
"fds_quota": 16384,
"usage":
{
"time": "2015-10-29 08:25:45 +0000",
"cpu": 0.0015772999557422517,
"mem": 181530624,
"disk": 187355136
}
}
},
"1":
{
"state": "RUNNING",
"stats":
{
"name": "testlibappcf",
"uris":
[
"testlibappcf.mybluemix.net"
],
"host": "75.126.172.157",
"port": …Run Code Online (Sandbox Code Playgroud) 我必须截断表上 Guid 的前几位数字。是否可以仅使用 SQL 脚本来完成此操作?或者我必须以编程方式完成?
谢谢!
我有两个对象,但是当我更新一个时,具有相同GUID的另一个项目也会更新,即使我正在尝试应用新的GUID以便我可以将它们分开.
var completedSecond = model.CompletedTransfers.First();
var transferedTransfers = model.TransferedTransfers.First();
if (transferedTransfers.Count != 0) {
transferedTransfers.RowId = Guid.NewGuid();
}
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,这两个项具有相同的GUID,但是当我更新第二个具有新GUID时,第一个对象也获得该新GUID.这怎么可能?
我需要生成一个由数字组成的唯一 ID。
以下结果字符串是否与?uniqueId的结果一样唯一guid.ToString()?
Guid guid = Guid.NewGuid();
byte[] guidBytes = guid.ToByteArray();
// Is the result (uniqueId) as unique as guid.ToString()?
string uniqueId = string.Join(string.Empty, guidBytes);
Run Code Online (Sandbox Code Playgroud) 给定相同的GUID Object.GetHashCode会生成不同的哈希码,但会Object.Equals显示相同的GUID等于.
整个GUID:
不同的哈希码:
相等== true:
而且,显然,两者都是System.Guid:
即使它是相同的GUID,它们也是不同的值,因为它们是从两个来源反序列化的.
这是预期的行为吗?
我想创建一个通用类型转换器,根据我转换的方向(DTO > VM 或 VM > DTO)将 Guid 转换为字符串,将字符串转换为 Guid。此外,某些属性具有可为空的 Guid,所以我想我也可以处理它。我试过以下不走运:
CreateMap<string, Guid?>().ConvertUsing(value => !string.IsNullOrEmpty(value) ? Guid.Parse(value) : (Guid?)null);
CreateMap<string, Guid>().ConvertUsing(guid => Guid.Parse(guid));
Run Code Online (Sandbox Code Playgroud)
和
CreateMap<Guid?, string>().ConvertUsing(guid => guid?.ToString("N"));
CreateMap<Guid, string>().ConvertUsing(guid => guid.ToString("N"));
Run Code Online (Sandbox Code Playgroud)
关于如何使其工作的任何建议?
guid ×10
c# ×5
sql-server ×2
.net ×1
.net-4.6.2 ×1
.net-core ×1
automapper ×1
hashcode ×1
linq ×1
native ×1
nhibernate ×1
security ×1
sql ×1
substring ×1
t-sql ×1
truncate ×1