Использование Entity Framework 5.0 отображает отношения между родителем и потомком, когда идентификатором являются Guids с newsequentialid()

У меня есть два класса с отношениями один ко многим.

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.

Получение данных из базы данных работает с указанными выше классами отображения. Любая помощь будет принята с благодарностью.

0 ответов

Другие вопросы по тегам