小编Vas*_*pov的帖子

EF,Code First - 如何在插入时设置自定义Guid标识值

在处理在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)

c# entity-framework .net-4.0

12
推荐指数
1
解决办法
6052
查看次数

标签 统计

.net-4.0 ×1

c# ×1

entity-framework ×1