小编Ale*_* G.的帖子

如何首先使用实体​​框架5代码删除具有导航属性的对象?

我首先使用EF 5代码,我有2个相关实体ApplicationPermission和Application:

public class ApplicationPermission
{
   public virtual Application Application { get; set; }

   public int Id { get; set; }
} 

public class Application 
{
   public string Name { get; set; }

   public int Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

使用ApplicationPermission的以下映射:

HasKey(x => x.Id);
HasRequired(x => x.Application).WithMany().Map(m => m.MapKey("ApplicationId")).WillCascadeOnDelete(false);
Run Code Online (Sandbox Code Playgroud)

和申请:

HasKey(x => x.Id);
Run Code Online (Sandbox Code Playgroud)

我使用下面的代码删除ApplicationPermission:

ApplicationPermission entity = new ApplicationPermission { Id = id };
DbContext.Set<ApplicationPermission>().Attach(entity);
DbContext.Set<ApplicationPermission>().Remove(entity);
DbContext.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

但我在SaveChanges方法上遇到错误:

'CodeFirstContainer.ApplicationPermissions'中的实体参与'ApplicationPermission_Application'关系.找到0个相关的'ApplicationPermission_Application_Target'.1'ApplicationPermission_Application_Target'是预期的.

如何在不将Application加载到dbcontext的情况下删除ApplicationPermission?

code-first delete-row entity-framework-5

6
推荐指数
1
解决办法
4994
查看次数