Entity framework core 实体核心保存多级实体,最后一个实体为基础数据
父表Entity framework core 实体核心保存多级实体,最后一个实体为基础数据,entity-framework-core,Entity Framework Core,父表 public class Indent { public int ID { get; set;} public virtual ICollection<IndentTable> IndentTableCollection { get; set; } public virtual int StoreID { get; set; } } 主表在创建缩进或缩进表之前已可用 public class MasterRegister {
public class Indent
{
public int ID { get; set;}
public virtual ICollection<IndentTable> IndentTableCollection { get;
set; }
public virtual int StoreID { get; set; }
}
主表在创建缩进或缩进表之前已可用
public class MasterRegister
{
public int ID { get; set;}
public virtual string MaterialNameWithDescription { get; set; }
[StringLength(20)]
public virtual string MaterialUnit { get; set; }
}
主寄存器已创建。新创建的缩进只需添加缩进和缩进表,但实体freamework也会尝试添加主寄存器
我需要使用master创建新的缩进和缩进表,但master保持不变
任何建议。谢谢斯密特,我是通过在谷歌上搜索相关内容获得ans的
foreach (var indentTable in indent.IndentTableCollection)
{
MAS.Core.Domain.Store.MasterRegister.MasterRegister masterregister = indentTable.MasterRegister;
_context.Entry(masterregister).State = EntityState.Unchanged;
}
使用此代码,不会更改为masterregister,一切正常。谢谢Smit,我通过在谷歌上搜索相关内容获得了ans
foreach (var indentTable in indent.IndentTableCollection)
{
MAS.Core.Domain.Store.MasterRegister.MasterRegister masterregister = indentTable.MasterRegister;
_context.Entry(masterregister).State = EntityState.Unchanged;
}
此代码不会更改为masterregister,一切正常。如果数据库中已存在Master,则需要将IndentTable中的FK属性设置为Master的ID,或者从数据库中获取Master并将其分配给IndentTable中的导航属性。实体框架添加indent,IndentTable中的Master register ID为外键,实体要做的另一件事是尝试添加新的主寄存器条目,但不希望添加。不应对主寄存器采取任何操作。如果数据库中已存在主寄存器,则需要将IndentTable中的FK属性设置为主寄存器ID,或者从数据库中提取主寄存器,并将其分配给中的导航属性实体框架添加缩进,将主寄存器id作为外键的缩进表,实体额外做的一件事是尝试添加新的主寄存器条目,但添加不可取,不应对主寄存器采取任何操作。