如果未设置,实体框架自动生成Id

时间:2014-08-14 09:03:05

标签: c# .net entity-framework ef-code-first

使用EF代码首先,我想插入一个自动生成ID 的实体,只有我还没有设置其ID。

这是我要插入的实体:

public class ElementEntity
{
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int Id { get; set; }

    public int Property1{ get; set; }
    public string Property2{ get; set; }
}

和用于插入数据的函数:

public static void AddEntity(int id, int prop1, string prop2)
    {
        db.Contents.Add(new ElementEntity
        {
            Id = id,
            Property1 = prop1,
            Property2 = prop2
        });
        db.SaveChanges();
    }

我想拥有相同的功能,但没有id参数。如果我使用这样的函数,Id会自动设置为0并抛出异常。

Entity Framework Code Fisrt是否允许混合生成Id行为?

1 个答案:

答案 0 :(得分:1)

AFAIK不是生成id的EF,而是生成数据库的EF(因此数据库生成选项)。因此,数据库表的属性决定是否生成id字段。

因此,我认为混合是不可能的。数据库是否生成它,但没有混合。