簡體   English   中英

實體框架添加新實體

[英]Entity framework add new entity

我無法在表格中插入記錄

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);

    }
}

當我嘗試添加新實體時,我收到錯誤

為“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();

這解決了我的問題

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

或者你可以刪除這一行

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]

這應該工作:

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();

附加是針對現有實體(當它們被分離時,或者當您想要將它附加到另一個實體時)。

AddObject適用於新實體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM