实体核心保存多级实体,最后一个实体是主数据

时间:2017-08-21 20:44:20

标签: entity-framework-core

父表。

public class Indent 
{   
    public int ID { get; set;}
    public virtual ICollection<IndentTable> IndentTableCollection { get; 
     set; }

    public virtual int StoreID { get; set; } 
}

由于需要下拉列表,子表包含master,下拉数据来自master

public class IndentTable 
{
    public int ID { get; set;}
    public virtual string ContractorName { get; set; }
    public virtual MasterRegister.MasterRegister MasterRegister { get; set; 
     }
    public virtual long IndentID { get; set; }
}

在创建缩进或缩进

之前,主表已可用
public class MasterRegister 
{       
    public int ID { get; set;}

    public virtual string MaterialNameWithDescription { get; set; }

    [StringLength(20)]
    public virtual string MaterialUnit { get; set; }

}

主寄存器已经创建了一个新创建的Indent,只需要添加Indent和IndentTable,但实体freamework也尝试添加MasterRegister。

我需要在引用master时创建新的Indent和IndentTable,但Master保持不变。

任何建议。

1 个答案:

答案 0 :(得分:0)

谢谢Smit我通过搜索google上的相关内容获得了ans。

foreach (var indentTable in indent.IndentTableCollection)
        {

            MAS.Core.Domain.Store.MasterRegister.MasterRegister masterregister = indentTable.MasterRegister;
            _context.Entry(masterregister).State = EntityState.Unchanged;
        }

使用此代码不会更改为masterregister,并且一切正常。