C# Enitity框架类型中的每个属性名称都必须是唯一的

C# Enitity框架类型中的每个属性名称都必须是唯一的,c#,entity-framework,entity-framework-6,ef-model-builder,C#,Entity Framework,Entity Framework 6,Ef Model Builder,我已经定义了以下实体,并且还定义了关系映射。但是,在保存时,我得到一个错误Name:类型中的每个属性名称都必须是唯一的。属性名称“ResponseId”已定义。在EF 6中 System.Data.Entity.ModelConfiguration.ModelValidationException 这让我震惊了两天,但我不确定,我班上的问题是什么。如果我删除ResponseOffer中的ResponseId,它工作正常。但是,我需要设置此值以将其保存在数据库及其FK中 请求可能包含许多响应,每个

我已经定义了以下实体,并且还定义了关系映射。但是,在保存时,我得到一个错误
Name:类型中的每个属性名称都必须是唯一的。属性名称“ResponseId”已定义。
EF 6中

System.Data.Entity.ModelConfiguration.ModelValidationException

这让我震惊了两天,但我不确定,我班上的问题是什么。如果我删除ResponseOffer中的ResponseId,它工作正常。但是,我需要设置此值以将其保存在数据库及其FK中

请求可能包含许多响应,每个响应可能包含许多响应提议

[Table("Response")]
public class Response : AggregateRoot // AggregateRoot is an Entity
{
    public Response(Request Request): this()
    {
        ResponseId = Guid.NewGuid();
        Request = Request;
        MaterialId = Request.MaterialId;           
    }

    public Response()
    {
    }

    public Response(Guid ResponseId)
    {
        ResponseId = ResponseId;
    }

    public Response(Guid ResponseId, Request Request)
    {
        ResponseId = ResponseId;
        Request = Request;            
    }

    public Guid ResponseId { get; private set; }     
    public virtual Request Request { get; set; }
    public bool IsActiveVersion { get; set; }
    public EntityHashSet<ResponseOffer> EditableResponseOffers => (EntityHashSet<ResponseOffer>)ResponseOffers;

}
映射

    modelBuilder.Entity<Response>()
            .HasRequired(e => e.Request)
            .WithMany(e => e.Responses)
            .WillCascadeOnDelete(false);         

        modelBuilder.Entity<Response>()
            .HasMany(e => e.ResponseOffers)
            .WithRequired(e => e.Response)
            .WillCascadeOnDelete(false);

我不确定,但是,我会尝试设置“EditableResponseOffers”属性 并通过移除私有响应ID来测试行为

public Guid ResponseId { get; set; }
public virtual EntityHashSet<ResponseOffer> EditableResponseOffers => (EntityHashSet<ResponseOffer>)ResponseOffers;
公共Guid响应ID{get;set;}
公共虚拟EntityHashSet EditableResponseOffers=>(EntityHashSet)ResponseOffers;

响应是否是一个
实体
?您没有指定继承。@是的,只是更新了它。同样的问题还是EF6或EF Core?我们能看到类实体和AggregateRoot吗?@Orwel这些类只有一个简单的属性,比如AddedDate和IsActive属性
INSERT [dbo].[ResponseOffer]([ResponseOfferId],  [RequestItemId], 
[Price], [Quantity], [Comment], [ResponseId], [Response_ResponseId1])
public Guid ResponseId { get; set; }
public virtual EntityHashSet<ResponseOffer> EditableResponseOffers => (EntityHashSet<ResponseOffer>)ResponseOffers;