C# 有没有一种方法可以在不再次查询数据库的情况下返回创建的记录?

C# 有没有一种方法可以在不再次查询数据库的情况下返回创建的记录?,c#,mysql,database,orchardcms,C#,Mysql,Database,Orchardcms,问题是名为“Kod”的字段在数据库上创建,它是MyRecord中的一个属性。正如您所看到的,我创建了记录,然后将其插入到我的db表中。当我创建它时,我的数据库会自动为Kod字段赋值 是否有任何方法可以在不再次查询db表的情况下立即返回创建的记录?IRepository.Create()在内部调用NHibernateISession.Save() 此方法的文档说明如下: 保存一个临时对象。生成一个id,分配给对象并返回 IRepository.Create()方法有一个void返回类型,因此不会返

问题是名为“Kod”的字段在数据库上创建,它是MyRecord中的一个属性。正如您所看到的,我创建了记录,然后将其插入到我的db表中。当我创建它时,我的数据库会自动为Kod字段赋值


是否有任何方法可以在不再次查询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;