【发布时间】: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