2017-04-12 2 views
0

:データベースでこの場合、流暢なAPIと1対1の関係を設定するにはどうすればよいですか?私はこの2つのエンティティ持っている(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はUNIQUEIDENTIFIERあるとDocumentosにIDDocumentoは大きなint型自動インクリメントです。主なテーブルはDocumentosで、1つの唯一のフィケロがあり、それは再注文されます。

私が見た例では、IDFicheroはIDDocumentoでしたが、データベースにファイルを保存するにはIDが一意識別子である必要があります。

ありがとうございました。

答えて

2

もしEF用語で記述されている関係は、DocumentosFicheros依存され、必要な両端と一対一FK関連付けです。

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")); 
関連する問題