【发布时间】:2014-06-15 04:25:24
【问题描述】:
我正在尝试删除 foreach 循环中的子对象,但这似乎不起作用。这就是我所拥有的。 我有一个会议和 meeting_category 实体,它们具有一对多的关系..
foreach (meeting_category meetingCategory in currentMeeting.meeting_category)
{
dbContext.meeting_category.Remove(meetingCategory);
dbContext.Entry(meetingCategory).State = EntityState.Deleted;
dbContext.SaveChanges();
}
然后我将返回相同的视图并更新结果。这似乎非常不一致。有时它会删除实体,有时则不会。即使删除它,我的会议对象仍然有我删除的 meeting_category 对象。
当它不从数据库中删除时,它会更新会议对象并从会议中删除 meeting_category 对象。 为了让会议对象删除 meeting_category 对象,我是否需要进行任何类型的重置或刷新。 如何确保它始终从数据库和会议对象中删除 meeting_category 对象,当我返回视图时,我有一个更新的会议对象?
这是我的会议实体
public partial class meeting
{
public meeting()
{
this.meeting_questions = new HashSet<meeting_questions>();
this.meeting_abstract = new HashSet<meeting_abstract>();
this.meeting_category = new HashSet<meeting_category>();
this.meeting_image = new HashSet<meeting_image>();
}
public int meeting_id { get; set; }
public int language_id { get; set; }
public string meeting_code { get; set; }
public string meeting_name { get; set; }
public string meeting_description { get; set; }
public System.DateTime meeting_start_date { get; set; }
public System.DateTime meeting_end_date { get; set; }
public System.DateTime abstract_cutoff_date { get; set; }
public string meeting_guidelines { get; set; }
public string created_by { get; set; }
public Nullable<System.DateTime> created_datetime { get; set; }
public Nullable<bool> meeting_published { get; set; }
public Nullable<bool> meeting_deleted { get; set; }
public Nullable<bool> meeting_fully_created { get; set; }
public virtual language language { get; set; }
public virtual ICollection<meeting_questions> meeting_questions { get; set; }
public virtual ICollection<meeting_abstract> meeting_abstract { get; set; }
public virtual ICollection<meeting_category> meeting_category { get; set; }
public virtual ICollection<meeting_image> meeting_image { get; set; }
}
这是我的 meeting_category 实体
public partial class meeting_category
{
public meeting_category()
{
this.abstract_category = new HashSet<abstract_category>();
}
public int meeting_category_id { get; set; }
public int meeting_id { get; set; }
public int category_type_id { get; set; }
public int category_id { get; set; }
public string category_name { get; set; }
public string category_name_en { get; set; }
public virtual ICollection<abstract_category> abstract_category { get; set; }
public virtual category category { get; set; }
public virtual category_type category_type { get; set; }
public virtual meeting meeting { get; set; }
}
【问题讨论】:
-
你在哪里创建上下文?你的实体来自哪里?了解您在上下文中所做的事情以及您的实体是依附于它还是分离是至关重要的。也有必要知道你如何阅读你的实体。上下文可以缓存实体,如果使用不当,可能会导致问题。请在 ypur 问题中添加更多信息
-
嗨 JotaBe,我的 DBContext 是使用 Visual Studio 中的实体模型生成器创建的。我们在 DbContext 中使用 SQL 服务器实体。我们的实体是附属实体。我认为实体的上下文缓存似乎是一个问题。你能指导我吗?如果您需要任何其他信息,请告诉我
标签: c# entity-framework-5 dbcontext