C# 实体框架自动生成Id(如果未设置)
首先使用EF代码,我想插入一个具有自动生成ID的实体,前提是我没有设置其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; } } 以
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,则可以使用插入标识设置()