Insert table data with foreign key

2

Knowing that I have a table with the fields:

[ARQUIVO_GUID]
,[XARQUIVO]
,[TAG]
,[EXTENSAO]
,[URL]
,[IS_STREAM]

[ULT_ARQUIVO_VERSAO_GUID] FK
[TIPO_DE_ARQUIVO_GUID] FK
[DIRETORIO_GUID] FK

The last 3 fields are foreign keys to other tables, how do I insert data into the File table?     

asked by anonymous 05.02.2015 / 21:56

1 answer

1

@WarLock, follow an example:

using (var dbContext in new SeuDBContext()) {
    var arquivoVersao = new ARQUIVO_VERSAO();
    //Set das Propriedades do objeto arquivoVersao 

    var tipoArquivo = new TIPO_DE_ARQUIVO();
    //Set das Propriedades do objeto tipoArquivo 

    var diretorio = new DIRETORIO();
    //Set das Propriedades do objeto diretorio 

    var arquivo = new ARQUIVO();
    arquivo.DIRETORIO = diretorio;
    arquivo.TIPO_DE_ARQUIVO = tipoArquivo;
    arquivo.ARQUIVO_VERSAO = arquivoVersao;
    //Set das Propriedades de arquivo 

    dbContext.ARQUIVOS.Add(arquivo);
    dbContext.SaveChanges();
}

In SQL it might look something like this:

DECLARE @arquivoVersaoID as uniqueidentifier
DECLARE @tipoArquivoID as uniqueidentifier
DECLARE @diretorioID as uniqueidentifier

SET @arquivoVersaoID = NEWID();
SET @tipoArquivoID = NEWID();
SET @diretorioID = NEWID();

INSERT INTO ARQUIVO_VERSAO VALUES (@arquivoVersaoID, /*Demais propriedades*/);
INSERT INTO TIPO_DE_ARQUIVO VALUES (@tipoArquivoID, /*Demais propriedades*/);
INSERT INTO DIRETORIO VALUES (@diretorioID, /*Demais propriedades*/)
INSERT INTO ARQUIV VALUES (/*Demais propriedades*/, @arquivoVersaoID, @tipoArquivoID, @diretorioID)
    
06.02.2015 / 00:35