【问题标题】:Not generating unique GUID不生成唯一的 GUID
【发布时间】:2017-05-04 12:09:21
【问题描述】:

我在存储数据时遇到了一个非常奇怪的事件。 我的表使用 Guid 作为主 ID,出于某种原因,它为所有新条目记录了相同的 Guid。

表结构

public class Checkpoint
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid Id { get; set; }

    [Required]
    public string Title { get; set; }

    public DateTime? CreatedOn { get; set; }
    public DateTime? ModifiedOn { get; set; }
}

public class Track
{
    public Track()
    {
       Checkpoints = new List<Checkpoint>();
    }

    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid Id { get; set; }

    [Required]
    public List<Checkpoint> Checkpoints { get; set; }

    public DateTime? CreatedOn { get; set; }
    public DateTime? ModifiedOn { get; set; }
}

将模型转换为存储在轨道中的新检查点列表的代码 sn-p。

var trackObject = new Track();

var checkpointList = model.Checkpoints.ConvertAll(x => new Checkpoint {Title = x.Title});

trackObject.Checkpoints.Add(checkpointList);

db.Track.Add(trackObject);
await db.SaveChangesAsync();

检查点表结果(我省略了指向Track对象的外键):

ID                                     |  TITLE   |  CREATED_ON
--------------------------------------------------------------------------------
c3451b2b-bb30-e711-b867-f01faf23929d   |  First   |  4/05/2017   11:16:50 AM    
c5451b2b-bb30-e711-b867-f01faf23929d   |  Second  |  4/05/2017   11:16:50 AM
c6451b2b-bb30-e711-b867-f01faf23929d   |  Third   |  4/05/2017   11:16:50 AM    
c7451b2b-bb30-e711-b867-f01faf23929d   |  Sprint  |  4/05/2017   11:16:50 AM    
c8451b2b-bb30-e711-b867-f01faf23929d   |  Home    |  4/05/2017   11:16:50 AM    
c9451b2b-bb30-e711-b867-f01faf23929d   |  Finish  |  4/05/2017   11:16:50 AM

可以看出,所有 ID 字段都是相同的。 代码哪里出错了?

【问题讨论】:

  • 您是否忘记将属性 [Key] 放在您的 Id 上?
  • 它们不一样。它们在第一部分都是不同的。这是因为它是一个 SequentialGuid。

标签: asp.net entity-framework entity-framework-6


【解决方案1】:

这些都是独特而不同的。查看这些已发布指南的第二个数字。 EF 代码告诉 SQL 生成新的顺序 Guid (TSQL NEWSEQUENTIALID())。

https://docs.microsoft.com/en-us/sql/t-sql/functions/newsequentialid-transact-sql

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 2013-04-18
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    相关资源
    最近更新 更多