ef4 poco,插入后如何获得id?

时间:2010-12-14 12:22:36

标签: linq entity-framework-4 linq-to-entities

我正在插入一个文档,我希望将文档的引用ID作为其中的一部分 文档...但代码是自动增量,我正在使用poco。我怎么能得到 返回插入文件的代码?

            ArquivoDTO file = new ArquivoDTO();
            file.NomeArquivo = fileName;
            file.TipoArquivo = fileType;

            file.TamanhoArquivo = fileSize;
            var context = new PROGISContext();
            ArquivoRepository arquivoRepository = new ArquivoRepository(context);
            arquivoRepository.IncluirArquivo(file); //insert file
            ParteArquivoDTO part = new ParteArquivoDTO(); //create a part

            part.CodArquivo = file.CodArquivo; // here id of inserted file

2 个答案:

答案 0 :(得分:1)

很难说这个代码示例单独存在什么问题,但您是否在SubmitChanges()的DataContext上调用了arquivoRepository.IncluirArquivo(file)

如果您是,并且ArquivoDTO类的CodArquivo属性正确配置为自动增量ID,则属性应在SubmitChanges()之后自动更新。

答案 1 :(得分:1)

像这样的东西

    [Key, DatabaseGenerated( DatabaseGeneratedOption.Identity )]
    public Guid Identifier { get; protected set; }

然而,如果你打电话给SaveChanges()

,你就不会得到我