C# 有没有一种方法可以在不再次查询数据库的情况下返回创建的记录?
问题是名为“Kod”的字段在数据库上创建,它是MyRecord中的一个属性。正如您所看到的,我创建了记录,然后将其插入到我的db表中。当我创建它时,我的数据库会自动为Kod字段赋值C# 有没有一种方法可以在不再次查询数据库的情况下返回创建的记录?,c#,mysql,database,orchardcms,C#,Mysql,Database,Orchardcms,问题是名为“Kod”的字段在数据库上创建,它是MyRecord中的一个属性。正如您所看到的,我创建了记录,然后将其插入到我的db表中。当我创建它时,我的数据库会自动为Kod字段赋值 是否有任何方法可以在不再次查询db表的情况下立即返回创建的记录?IRepository.Create()在内部调用NHibernateISession.Save() 此方法的文档说明如下: 保存一个临时对象。生成一个id,分配给对象并返回 IRepository.Create()方法有一个void返回类型,因此不会返
是否有任何方法可以在不再次查询db表的情况下立即返回创建的记录?IRepository.Create()在内部调用NHibernate
ISession.Save()
此方法的文档说明如下:
保存一个临时对象。生成一个id,分配给对象并返回
IRepository.Create()
方法有一个void
返回类型,因此不会返回新id,而是将其分配给传递给该方法的对象
因此,在这种情况下,您的
记录
变量已经包含与查询数据库时得到的对象相同的对象。您必须以某种方式查询数据库,有些ORM,比如Entity Framework,会自动执行这类操作,但在幕后它会运行2个查询。我想这就是NHibernate ORM吧?你不知道你在用什么技术吗?乌节使用的是NHibernate
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;