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表?
答案 0 :(得分:2)
IRepository.Create()
在内部调用NHibernate ISession.Save()
。
此方法的文档说明如下:
保存瞬态对象。生成一个id,分配给该对象并返回
IRepository.Create()
方法的返回类型为void
,因此不会返回新的ID,但会将其分配给传递给方法的对象。
因此,在这种情况下,您的record
变量已包含与查询数据库时相同的对象。