简体   繁体   English

实体框架添加新实体

[英]Entity framework add new entity

I unable to insert a record in table 我无法在表格中插入记录

public class KPITable
{

    [Key]        
    public int Id { get; set; }
    public string Name { get; set; }
    public string Query { get; set; }
    public string TableName { get; set; }
}

public class KPITableMap : EntityTypeConfiguration<KPITable>
{
    public KPITableMap()
    {
        ToTable("EIS_KPI", AppUtility.EISMDBSchemaName);
        Property(t => t.Id).HasColumnName("KPI_ID");           
        Property(t => t.Name).HasColumnName("NAME").HasMaxLength(20);
        Property(t => t.Query).HasColumnName("QUERY").HasMaxLength(20);
        Property(t => t.TableName).HasColumnName("TABLE_NAME").HasMaxLength(20);

    }
}

I am getting error when i try to add new entity 当我尝试添加新实体时,我收到错误

A null store-generated value was returned for a non-nullable member 'Id' of type 'EISM.Database.Models.KPITable 为“EISM.Database.Models.KPITable”类型的非可空成员“Id”返回了一个空存储生成的值

var newEntity = new KPITable();
newEntity.Id = 55;
                newEntity.Name = data.Name;
                newEntity.Query = data.Query;
                newEntity.TableName = data.TableName;
_dbContext.KPIs.Attach(newEntity);
                _dbContext.Entry(newEntity).State = EntityState.Added;
                _dbContext.SaveChanges();

this has resolved my problem 这解决了我的问题

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

OR you can just remove this line 或者你可以删除这一行

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]

This should work: 这应该工作:

var newEntity = new KPITable();
newEntity.Id = 55;
                newEntity.Name = data.Name;
                newEntity.Query = data.Query;
                newEntity.TableName = data.TableName;
_dbContext.KPIs.AddObject(newEntity);
_dbContext.SaveChanges();

Attach is for existing entities (when they are detached, or when you want to attach it to another entity). 附加是针对现有实体(当它们被分离时,或者当您想要将它附加到另一个实体时)。

AddObject is for new entities. AddObject适用于新实体。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM