有没有办法 return 创建记录而无需再次查询数据库?

Is there a way to return created record without querying into database again?

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 的 属性。如您所见,我创建了记录而不是将其插入我的数据库 table。当我创建它时,我的数据库会自动为 Kod 字段分配值。

有什么方法可以 return 立即创建记录而无需再次查询数据库 table 吗?

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

此方法的文档说明如下:

Save a transient object. An id is generated, assigned to the object and returned

IRepository.Create() 方法有一个 void return 类型,所以新的 id 不是 returned,而是分配给对象你传递给方法。

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