在处理在Guid作为主键的数据库中插入新实体时,我面临以下问题- 使用Code第一种方法的EF 5.
我知道有很多类似的主题,因为我在这个问题上流了几个小时,但我找不到这个问题的话题.
举个例子,我的POCO课程是:
public class EntityRole : IAdminModel
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
[Required]
[MaxLength(50)]
public string Name { get; set; }
[Required]
[Display(Name = "Role code")]
[MaxLength(20)]
public string RoleCode { get; set; }
[Display(Name = "Entities Assigned")]
[InverseProperty("Role")]
public List<Entity> Entities { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
RoleCode和Name只是文本数据,可以在管理面板中编辑,因此不要考虑这些字段名称.
添加新实体时,我不指定主键值.到目前为止一切都那么好,这里的一切都很好 作为需要值并且具有自动生成值的主键字段,它应该不总是指定Id,但是如果我设置了值,则应该保留它(如果启用了标识插入).
但在某些情况下,我想指定一个主键值,例如我的数据库的初始种子值.我需要它以便以后处理 - 我只想说我需要那个特定的Guid.所以,如果我在我的Configuration类中:
// Initial data seed
protected override void Seed(WebPortalDbContext context)
{
context.MenuItems.AddOrUpdate(
m => m.Id, …Run Code Online (Sandbox Code Playgroud)