我首先使用 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; }
}
ApplicationPermission 具有以下映射:
HasKey(x => x.Id);
HasRequired(x => x.Application).WithMany().Map(m => m.MapKey("ApplicationId")).WillCascadeOnDelete(false);
和应用程序:
HasKey(x => x.Id);
我使用下面的代码来删除 ApplicationPermission:
ApplicationPermission entity = new ApplicationPermission { Id = id };
DbContext.Set<ApplicationPermission>().Attach(entity);
DbContext.Set<ApplicationPermission>().Remove(entity);
DbContext.SaveChanges();
但我在 SaveChanges 方法上遇到错误:
“CodeFirstContainer.ApplicationPermissions”中的实体参与“ApplicationPermission_Application”关系。找到 0 个相关的“ApplicationPermission_Application_Target”。1 'ApplicationPermission_Application_Target' 是预期的。
如何在不将 Application 加载到 dbcontext 的情况下删除 ApplicationPermission?