Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架自动生成Id(如果未设置)_C#_.net_Entity Framework_Ef Code First - Fatal编程技术网

C# 实体框架自动生成Id(如果未设置)

C# 实体框架自动生成Id(如果未设置),c#,.net,entity-framework,ef-code-first,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; } } 以

首先使用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,并引发异常


实体框架代码是否首先允许混合生成Id行为?

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


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

AFAIK EF不会拒绝分配本身。如果底层RDBMS是MSSQL,则可以使用插入标识设置()