1

我有两个具有一对多关系的类。

public partial class Client
{
    public Client()
    {
        this.Client_Local = new HashSet<Client_Local>();
    }

    public System.Guid Guid { get; set; }
    public string Name { get; set; }

    public virtual ICollection<Client_Local> Client_Local { get; set; }
}

public partial class Client_Local
{
    public System.Guid LocalGuid { get; set; }
    public System.Guid Guid { get; set; }
    public string CultureID { get; set; }
    public string LocalName { get; set; }

    public virtual Client Client { get; set; }
}

映射类是:

class ClientMapping : EntityTypeConfiguration<Client>
{
    public ClientMapping()
    {
        this.HasKey(entity => entity.Guid); //As newsequentialid()
        this.ToTable("Client");

        this.Property(entity => entity.Guid).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
    }
}

class Client_LocalMapping : EntityTypeConfiguration<Client_Local>
{
    public Client_LocalMapping()
    {
        this.HasKey(entity => entity.LocalGuid); // as As newsequentialid()
        this.ToTable("Client_Local");

        this.Property(entity => entity.LocalGuid).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
        this.HasRequired<Client>(e => e.Client).WithMany(p => p.Client_Locals).HasForeignKey<Guid>(c => c.Guid);
    }
}

我可以创建客户端类的新实例并将它们成功保存到数据库中。但是,当我尝试添加 Client_Local 类并将其保存到数据库时,我得到“ReferentialConstraint 中的依赖属性映射到存储生成的列。列:'Guid'。”。

出于性能原因,关键字段在 sql 中生成为 newsequentialid。并且Client_Local.Guid和Client.Guid之间存在外键关系。

从数据库中检索数据使用上述映射类。任何帮助将不胜感激。

4

0 回答 0