有没有办法返回创建的记录而不再次查询数据库?

时间:2015-08-07 08:12:23

标签: c# mysql database orchardcms

var q = this._prometnaPozivnicaRepository.Table
            .Where(x => x.SenderId == userId && 
                        x.Namjena == namjena && 
                       (x.DateExpire > DateTime.UtcNow || x.ReceiverId > 0))
            .ToList();

MyRecord record = new PrometnaPozivnicaRecord
{
    CiklusId = 0,
    Namjena = namjena,
    SenderId = userId,
    ReceiverId = 0,
    DateSent = datumOd,
    DateExpire = datumDo
};

this._prometnaPozivnicaRepository.Create(record);
q.Add(pozivnica);
return q;

事情就是这个领域叫做" Kod"在数据库上创建,它是MyRecord的属性。正如您所看到的,我创建记录而不是将其插入到我的db表中。当我创建它时,我的数据库会自动为Kod字段赋值。

有没有办法立即返回创建的记录而不再查询db表?

1 个答案:

答案 0 :(得分:2)

IRepository.Create()在内部调用NHibernate ISession.Save()

此方法的文档说明如下:

  

保存瞬态对象。生成一个id,分配给该对象并返回

IRepository.Create()方法的返回类型为void,因此不会返回新的ID,但会将其分配给传递给方法的对象。

因此,在这种情况下,您的record变量已包含与查询数据库时相同的对象。