Tag: uniqueidentifier

自定义字符串作为具有entity framework的主键

我正在尝试使用Code First Entity Framework将个性化字符串设置为主键。 我有一个帮助函数返回一个n-chars随机字符串,我想用它来定义我的Id,就像YouTubevideo代码一样。 using System.Security.Cryptography; namespace Networks.Helpers { public static string GenerateRandomString(int length = 12) { // return a random string } } 我不想使用自动递增的整数(我不希望用户使用机器人太容易访问每个项目)或Guid(太长时间无法向用户显示)。 using Networks.Helpers; using System; using System.ComponentModel.DataAnnotations; namespace Networks.Models { public class Student { [Key] // key should look like 3asvYyRGp63F public string Id { get; set; } public string […]

将uniqueidentifier参数传递给存储过程

我试图使用以下代码将uniqueidentifier参数传递给存储过程: myCommand.Parameters.Add(“@BlogID”, SqlDbType.UniqueIdentifier).Value = “96d5b379-7e1d-4dac-a6ba-1e50db561b04”; 我不断收到错误,但是说该程序无法从字符串转换为GUID。 我错误地传递了这个值吗?

在C#和SQL Server中不同地将int转换为guid

在C#和SQL Server中将int转换为guid时,我得到不同的值。 在C#中我使用这种方法 public static Guid Int2Guid( int value ) { byte[] bytes = new byte[16]; BitConverter.GetBytes( value ).CopyTo( bytes, 0 ); return new Guid( bytes ); } Console.Write( Int2Guid( 1000 ).ToString() ); // writes 000003e8-0000-0000-0000-000000000000 在SQL Server中我使用 select cast(cast(1000 as varbinary(16)) as uniqueidentifier) — writes E8030000-0000-0000-0000-000000000000 他们为什么表现不同?

削减uuid进一步做短串

我需要为给定的唯一字符串生成唯一的记录ID。 我尝试使用uuid格式似乎很好。 但我们觉得这很长。 所以我们需要将uuid字符串9f218a38-12cd-5942-b877-80adc0589315减少到更小。 通过删除’ – ‘我们可以节省4个字符。 从uuid中删除最安全的部分是什么? 我们不需要普遍唯一的id,但我们喜欢使用uuid作为源,但减少了字符串。 我们需要特定于站点/数据库的唯一ID(SQL Server / ADO.NET数据服务)。 任何语言的任何想法或样本都可以 提前致谢

生成随机唯一数字的性能问题

我有一种情况,我需要创建成千上万的唯一数字。 但是这些数字必须是9位数,不能包含任何0。 我当前的方法是生成9位数(1-9)并将它们连接在一起,如果该数字不在列表中,则将其添加到其中。 例如 public void generateIdentifiers(int quantity) { uniqueIdentifiers = new List(quantity); while (this.uniqueIdentifiers.Count < quantity) { string id = string.Empty; id += random.Next(1,10); id += random.Next(1,10); id += random.Next(1,10); id += " "; id += random.Next(1,10); id += random.Next(1,10); id += random.Next(1,10); id += " "; id += random.Next(1,10); id += random.Next(1,10); id […]

为两个数字的组合生成唯一值

考虑我有两个数字1023232和44.我想生成一个代表这个数字组合的唯一数字。 我怎样才能产生它? 需求 f(x,y)= f(y,x)和f(x,y)对于每个(x,y)或(y,x)是唯一的

如何确定实际物理网卡的MAC地址 – 而不是VPN创建的虚拟网络接口(.NET C#)

背景 我试图从计算机中获取唯一的标识符,并希望每次都可以可靠地返回相同的MAC地址。 相信我,我有使用MAC地址的原因,并阅读了许多关于备用唯一ID方法的post(是的,如果他们没有任何网卡,我会考虑)。 问题 问题出在.NET中我无论如何都没有看到特定的NetworkInterface是否是来自“Nortel IPSECSHM适配器 – 数据包调度程序微型端口”的物理硬件网卡,当您连接到某些VPN或WiFi网络时会添加它。 我知道如何通过使用类似于此的代码获取Mac地址: foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces()) { log.Debug(“NIC ” + nic.OperationalStatus + ” ” + nic.NetworkInterfaceType + ” ” + nic.Speed + ” ” + nic.GetPhysicalAddress() + ” ” + nic.Description); } 可以理解的是,没有100%的方法可以确保我获得内部网卡但是我想选择MAC地址来返回哪个最不可能改变的给定机器 。 独立于诸如以下因素 – 无论是否连接到wifi ……通过某种类型的系绳连接进行连接……或者他们安装了一些新的vpn软件,增加了新的界面。 考虑的策略 1)选择第一个“Up”界面。 这在我的笔记本电脑上失败,因为“Packet Miniport”总是在运行。 此外,如果我将手机连接到笔记本电脑,这也会显示为第一张卡。 2)选择最合适的类型…这个失败b / c基本上所有东西都显示为“以太网”,包括WiFi适配器和我的iPHone网络连接。 3)选择具有IP地址的NIC。 […]