C# 正在删除具有0..1对1关系的实体

C# 正在删除具有0..1对1关系的实体,c#,entity-framework,C#,Entity Framework,又是我和我的EF问题。我已成功生成两个具有0.1对1关系的实体: public class File { [Key] public int FileId { get; set; } public virtual FileData FileData { get; set; } } public class FileData { [Key] public int FileDataId { get; set; } public virtual Fil

又是我和我的EF问题。我已成功生成两个具有0.1对1关系的实体:

public class File
{
    [Key]
    public int FileId { get; set; }

    public virtual FileData FileData { get; set; }
}
public class FileData
{
    [Key]
    public int FileDataId { get; set; }

    public virtual File File { get; set; }

    [Required]
    public byte[] Content { get; set; }
}
使用Fluent API定义:

modelBuilder.Entity<File>()
            .HasOptional(x => x.FileData)
            .WithRequired(x => x.File)
            .WillCascadeOnDelete(false);
请注意,异常已经来自Remove,而不是实际的SaveChanges


在定义两个实体之间的关系时,我应该如何删除实体,或者我做错了什么?

能否显示用于删除的ef查询?删除代码有问题,能否发布?主要的问题是,在哪里以及如何获取您试图删除的实体实例。是的,有一些可疑之处。我在一个示例项目()中创建了相同的场景,删除在那里非常有效。我想一定是其他一些参考文献干扰了删除。
at System.Data.Entity.Core.Objects.ObjectStateManager.DetectConflicts(IList 1 entries)
at System.Data.Entity.Core.Objects.ObjectStateManager.DetectChanges()
at System.Data.Entity.Core.Objects.ObjectContext.DetectChanges()
at System.Data.Entity.Internal.InternalContext.DetectChanges(Boolean force)
at System.Data.Entity.Internal.Linq.InternalSet 1.Remove(Object entity)
at System.Data.Entity.DbSet 1.Remove(TEntity entity)
at ...