asp.net-mvc – 如何在实体框架中为GUID设置NewId()
发布时间:2020-12-15 22:21:31 所属栏目:asp.Net 来源:网络整理
导读:我正在创建asp.net mvc4示例.在此我创建了ID列作为GUID在表格的datacontext. public class Sample{ [Required] public Guid ID { get; set; } [Required] public string FirstName { get; set; }} 这是实体表 CreateTable("dbo.Samples",c = new { ID = c.Gu
我正在创建asp.net mvc4示例.在此我创建了ID列作为GUID在表格的datacontext.
public class Sample { [Required] public Guid ID { get; set; } [Required] public string FirstName { get; set; } } 这是实体表 CreateTable( "dbo.Samples",c => new { ID = c.Guid(nullable: false),FirstName = c.String(nullable: false) }) .PrimaryKey(t => t.ID); Id通过00000000-0000-0000-0000-000000000000. 如何将newid()设置为GUID以及我必须设置的位置. 解决方法
我建议只使用长时间的ID类型.它与“GUID”相匹配,并具有一定的性能提升.但是,如果要使用GUID,您应该使用
Sequential GUID并将其设置在构造函数中.我也会将ID设为私人设定者:
public class Sample { public Sample() { ID = GuidComb.Generate(); } [Required] public Guid ID { get; private set; } [Required] public string FirstName { get; set; } } 顺序GUID public static class GuidComb { public static Guid Generate() { var buffer = Guid.NewGuid().ToByteArray(); var time = new DateTime(0x76c,1,1); var now = DateTime.Now; var span = new TimeSpan(now.Ticks - time.Ticks); var timeOfDay = now.TimeOfDay; var bytes = BitConverter.GetBytes(span.Days); var array = BitConverter.GetBytes( (long)(timeOfDay.TotalMilliseconds / 3.333333)); Array.Reverse(bytes); Array.Reverse(array); Array.Copy(bytes,bytes.Length - 2,buffer,buffer.Length - 6,2); Array.Copy(array,array.Length - 4,buffer.Length - 4,4); return new Guid(buffer); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何获取asp.net c#的文章数据
- Asp.net MVC json还是Json.net?
- 使用Asp.net的Amazon Book Search API
- asp.net-mvc – 在ASP.NET MVC中,response.redirect如何工作
- asp.net-mvc – knockout下拉列表将选择传递给MVC5中的模型
- asp.net – REST动词 – 哪个约定是“正确的”
- asp.net-mvc – ASP.NET MVC下拉列表
- asp.net-mvc – NHibernate Validator和ASP.NET MVC 4
- asp.net-mvc-3 – 为什么Html.Label()不适用于句点?
- UnitOfWork知多少
推荐文章
站长推荐
- asp.net – 用于验证的数据注释,至少一个必填字段
- asp.net-mvc-3 – 错误:在登录时未找到视图’xx
- asp.net – 以编程方式从GridView添加和删除事件
- asp.net – HTTP错误400 – 与Topshelf的OWIN
- asp.net – NewRelic – 如何忽略Web应用程序的一
- asp.net – 命名空间’System’中不存在类型或命
- asp.net-mvc – AutoMapper.Mapper不包含CreateM
- asp.net-mvc – 根据活动页面有条件地显示部分视
- asp.net – 在WCF中将对象数组序列化为JSON以符合
- asp.net-mvc-3 – 首先是ASP.Net MVC 3 EF4.1代码
热点阅读