有没有办法 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
变量已经包含了与查询数据库时相同的对象。
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
变量已经包含了与查询数据库时相同的对象。