I am developing a file manager and have already implemented some methods like addArquivo
, listarArquivo
, listarVersoes
, etc.
But I need to edit it, see my DAL methods:
Add:
internal void AddArquivo(Model.Arquivo arquivo)
{
using (var ctx = new TESTEntities())
{
var versao = arquivo.ArquivoVersoes[0];
ctx.ARQUIVO.Add(new ARQUIVO()
{
ARQUIVO_GUID = arquivo.ARQUIVO_GUID,
ARQUIVO_VERSAO = new ARQUIVO_VERSAO()
{
ARQUIVO_GUID = arquivo.ARQUIVO_GUID,
ARQUIVO_VERSAO_GUID = Util.Util.GUIDs.GetGUID(),
ARQUIVO = versao.ARQUIVO,
DATAHORA = versao.DATAHORA,
TAMANHO = versao.TAMANHO,
USUARIO_PESSOA_GUID = versao.USUARIO_PESSOA_GUID
},
DIRETORIO_GUID = arquivo.DIRETORIO_GUID,
EXTENSAO = arquivo.EXTENSAO,
IS_STREAM = arquivo.IS_STREAM,
TAG = arquivo.TAG,
TIPO_DE_ARQUIVO_GUID = arquivo.TipoDeArquivo.TIPO_DE_ARQUIVO_GUID,
ULT_ARQUIVO_VERSAO_GUID = arquivo.ULT_ARQUIVO_VERSAO_GUID,
URL = arquivo.URL,
XARQUIVO = arquivo.XARQUIVO
});
ctx.SaveChanges();
}
Get a file:
/// <summary>
/// Método que busca um arquivo conforme parametro
/// </summary>
/// <param name="termo"></param>
/// <returns></returns>
internal Arquivo GetArquivo(string termo)
{
using (var ctx = new TESTEntities())
{
var arquivo = (from arq in ctx.ARQUIVO
where arq.ARQUIVO_GUID == termo
|| arq.XARQUIVO == termo
select new Arquivo()
{
ARQUIVO_GUID = arq.ARQUIVO_GUID,
DIRETORIO_GUID = arq.DIRETORIO_GUID,
EXTENSAO = arq.EXTENSAO,
IS_STREAM = arq.IS_STREAM,
TAG = arq.TAG,
TIPO_DE_ARQUIVO_GUID = arq.TIPO_DE_ARQUIVO_GUID,
ULT_ARQUIVO_VERSAO_GUID = arq.ULT_ARQUIVO_VERSAO_GUID,
URL = arq.URL,
XARQUIVO = arq.XARQUIVO,
}).FirstOrDefault();
arquivo.ArquivoVersoes.Add(GetArquivoVersao(arquivo.ULT_ARQUIVO_VERSAO_GUID));
return arquivo;
}
}
Mapping:
public DbSet<ARQUIVO> ARQUIVO { get; set; }
public DbSet<ARQUIVO_PRODUTO> ARQUIVO_PRODUTO { get; set; }
public DbSet<ARQUIVO_VERSAO> ARQUIVO_VERSAO { get; set; }
public DbSet<DIRETORIO> DIRETORIO { get; set; }
public DbSet<DIRETORIO_PASTA> DIRETORIO_PASTA { get; set; }
public DbSet<TIPO_DE_ARQUIVO> TIPO_DE_ARQUIVO { get; set; }
What I did with the help of Thiago Custodio's answer:
internal void UpdateArquivo(String termo, Arquivo arquivoEditado)
{
var arquivo = GetArquivo(termo);
using (var ctx = new TESTEntities())
{
arquivo.XARQUIVO = arquivoEditado.XARQUIVO;
arquivo.TAG = arquivoEditado.TAG;
arquivo.EXTENSAO = arquivoEditado.EXTENSAO;
arquivo.URL = arquivoEditado.URL;
arquivo.IS_STREAM = arquivoEditado.IS_STREAM;
ctx.Entry(arquivo).State = System.Data.EntityState.Modified;
ctx.SaveChanges();
}
}
But giving this exception:
the entity type arquivo not part of the model for the current context