我有下表
[TestModule]
ProductId uniqueidentifier primarykey
ModuleId uniqueidentifier primarykey
LastEdited timestamp primarykey
LastEditor uniqueidentifier
LastEditComment nvarchar(200)
CheckedOutTo uniqueidentifier
... other fields ...
该类定义如下:
[Column(IsPrimaryKey=true)]
public Guid ProductGuid { get; private set; }
[Column(IsPrimaryKey = true)]
public Guid ModuleGuid { get; private set; }
/// <summary>
/// date of last edit
/// </summary>
[Column(IsPrimaryKey=true)]
public DateTime LastEditDate { get; set; }
/// <summary>
/// Guid of last editor
/// </summary>
[Column]
public Guid LastEditorGuid { get; set; }
/// <summary>
/// Summary of last changes
/// </summary>
[Column]
public string LastEditNote { get; set; }
/// <summary>
/// Current editor. Null if checked in
/// </summary>
[Column(CanBeNull=true)]
public Guid CheckedOutByGuid { get; set; }
我希望能够选择一个 TestModule 实体,进行一些修改并将其作为新实体插入。目标是拥有变化的历史。
但是,我无法插入更改的对象。我收到一条错误消息“无法添加已存在的实体”。在插入对象之前,我将 LastEdited 属性设置为一个新值(现在),并且期望由于该属性是主键,它应该定义一个新实体。情况似乎并非如此。
任何人都可以帮助我了解这里发生了什么吗?实际上定义实体的是什么?主键?对象身份?还有什么?