我有一个实体(A),它有一个相关的实体(B)。当我加载A时,我想自动加载B.
我在OnModelCreating()中设置了以下内容:
ModelBuilder.Entity<A>().HasRequired(o => o.CreatedByAdministrator).WithMany().HasForeignKey(o => o.CreatedBy);
除此之外,我已经设定了:
public DbSet<A> As { get; set; }
public DbSet<B> Bs { get; set; }
当我加载带有实体A的列表时 - 我说:
context.As.Include("CreatedByAdministrator").ToList();
似乎工作得很完美。但我想确保 - 当我保存/更新/删除A时 - 它永远不会影响相关的B.我该怎么做?
答案 0 :(得分:0)
删除强>
将映射上的WillCascadeOnDelete
设置为false。
ModelBuilder.Entity<A>().HasRequired(o => o.CreatedByAdministrator).WithMany().HasForeignKey(o => o.CreatedBy).WillCascadeOnDelete(false);
保存并更新
如果您尚未在相关实体中修改某个媒体资源,则无法更新/保存任何内容。
如果您确实编辑了某些内容,则可以始终将该属性设置为null
。
或者您可以将该对象的状态设置为Unchanged
。
context.Entry(entity).State = EntityState.Unchanged;
答案 1 :(得分:0)
当您从A获取(获取数据)时,您可以检索相关实体的数据
获取/获取
e.g.
var model = a.tolist()
in view
Model.b.yourproperty
<强>更新/保存
如果您想更新并保存,则必须手动编写更新或保存功能。否则,不会影响您的相关财产。
删除
plz check fundamental here
也同意@Loetn的删除。