Использование 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.
Получение данных из базы данных работает с указанными выше классами отображения. Любая помощь будет принята с благодарностью.