在这种情况下如何设置与流利的api的一对一关系? (EF6)
How to set the one-to-one relationship with fluent api in this case? (EF6)
我有这两个实体:
public partial class Ficheros
{
public Guid Idfichero { get; set; }
public long Iddocumento { get; set; }
public byte[] Fichero { get; set; }
public virtual Documentos IddocumentoNavigation { get; set; }
}
public partial class Documentos
{
public Documentos()
{
ElementosDocumentos = new HashSet<ElementosDocumentos>();
}
public long Iddocumento { get; set; }
public string Nombre { get; set; }
public long? IdtipoDocumento { get; set; }
public string Codigo { get; set; }
public decimal? Espacio { get; set; }
public string Unidades { get; set; }
public long? Bytes { get; set; }
public virtual ICollection<ElementosDocumentos> ElementosDocumentos { get; set; }
public virtual Ficheros Ficheros { get; set; }
public virtual DocumentosTipos IdtipoDocumentoNavigation { get; set; }
}
在数据库中,IDFichero 是一个唯一标识符,而在 Documentos 中,IDDocumento 是一个 big int autoincrement。主要的table是Documentos,它只有一个fichero,而且是必需的。
我看到的例子,它会让我认为 IDFichero 是 IDDocumento,但要在数据库中存储文件,我需要 ID 是一个唯一标识符。
谢谢。
您在 EF 术语中描述的关系是一对一的 FK 关联,两端都需要,Documentos
是 principal 和 Ficheros
依赖.
EF 不支持此类关联的显式 FK,因此首先删除 Ficheros.Iddocumento
属性:
public partial class Ficheros
{
public Guid Idfichero { get; set; }
public byte[] Fichero { get; set; }
public virtual Documentos IddocumentoNavigation { get; set; }
}
然后使用以下流畅的配置:
modelBuilder.Entity<Documentos>()
.HasRequired(e => e.Ficheros)
.WithRequiredPrincipal(e => e.IddocumentoNavigation)
.Map(m => m.MapKey("Iddocumento"));
我有这两个实体:
public partial class Ficheros
{
public Guid Idfichero { get; set; }
public long Iddocumento { get; set; }
public byte[] Fichero { get; set; }
public virtual Documentos IddocumentoNavigation { get; set; }
}
public partial class Documentos
{
public Documentos()
{
ElementosDocumentos = new HashSet<ElementosDocumentos>();
}
public long Iddocumento { get; set; }
public string Nombre { get; set; }
public long? IdtipoDocumento { get; set; }
public string Codigo { get; set; }
public decimal? Espacio { get; set; }
public string Unidades { get; set; }
public long? Bytes { get; set; }
public virtual ICollection<ElementosDocumentos> ElementosDocumentos { get; set; }
public virtual Ficheros Ficheros { get; set; }
public virtual DocumentosTipos IdtipoDocumentoNavigation { get; set; }
}
在数据库中,IDFichero 是一个唯一标识符,而在 Documentos 中,IDDocumento 是一个 big int autoincrement。主要的table是Documentos,它只有一个fichero,而且是必需的。
我看到的例子,它会让我认为 IDFichero 是 IDDocumento,但要在数据库中存储文件,我需要 ID 是一个唯一标识符。
谢谢。
您在 EF 术语中描述的关系是一对一的 FK 关联,两端都需要,Documentos
是 principal 和 Ficheros
依赖.
EF 不支持此类关联的显式 FK,因此首先删除 Ficheros.Iddocumento
属性:
public partial class Ficheros
{
public Guid Idfichero { get; set; }
public byte[] Fichero { get; set; }
public virtual Documentos IddocumentoNavigation { get; set; }
}
然后使用以下流畅的配置:
modelBuilder.Entity<Documentos>()
.HasRequired(e => e.Ficheros)
.WithRequiredPrincipal(e => e.IddocumentoNavigation)
.Map(m => m.MapKey("Iddocumento"));