0
I am developing a file manager and have already implemented some methods like addArquivo
, listarArquivo
, listarVersoes
, etc..
But I need to edit it, check 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 you’re giving this Exception:
the entity type arquivo not part of the model for the current context
Have you noticed that your questions always need to be edited? Take a look, get better. You’re getting great help here at website help us keep everything organized, avoid giving extra work to the other users who help you. Especially careful to put tags, almost always using an existing one is better than creating another, especially with the wrong name. Programming requires care. Be careful training in everything in life.
– Maniero
All right, I’ll try to improve.
– War Lock
@Warlock, before starting to work with a tool, try to know the same one first, I see that you are trying to use the EF, without having the least knowledge of its functioning. In this case I advise you to read the following article: http://www.macoratti.net/10/11/c_efcrud.htm
– Tobias Mesquita
@Tobymosque updated the question, with what I tried with the help of friend Thiago, thanks for the link I have to study, but see what can help me at the moment.
– War Lock