如何使用Nhibernate插入到otherColumn等于someValue的列中

本文关键字:someValue 等于 otherColumn 何使用 Nhibernate 插入 | 更新日期: 2023-09-27 18:26:23

首先,请原谅我对Hibernate的了解不多(我是一个sql迷),我做了很多研究,只是在下面找不到如何正确地做到这一点

我想做的:我有一个名为ClassCodes的表,我想在他的原始代码旁边插入每个等价代码

所以我的两列是Originalcode和Equivalecodes(假设Originalcod已经填充)

这是我想帮助的功能

public void addEquivalenceCodes(string Code, string EquivalenceCode)
    try
                    {
                        using (ISession session = OpenSession())
                        {
                            using (ITransaction transaction =session.BeginTransaction())
                            {
     //**Here is what I don't know how to write properly in hibernate
 String hql = "INSERT INTO ClassCodes(CodeEquiv)" + "VALUES ("+EquivalenceCode+") WHERE Originalcode = "+Code+";
                    Query query = session.createQuery(hql);          
                                transaction.Commit();
                            }
                        }
                    }
                    catch (Exception e) { Console.WriteLine(e); }
                }

这是我的地图,添加更多的视觉帮助

 <class name="ClassCodes, table="[T0101_ClassCode]" lazy="false">
<id name="Id" column="[Id]">
  <generator class="native" />
</id>
<property name="OriginalCode" column="[OriginalCode]" />
<property name="EquivalanceCode" column="[EquivalanceCode]" />
etc...

我很感激我能得到的所有指南、提示和解释!

如何使用Nhibernate插入到otherColumn等于someValue的列中

这不是插入,而是更新

using (var session = new Configuration().Configure().BuildSessionFactory().OpenSession())  
        {  
            ClassCodes classcodes=session.Get<ClassCodes>(Originalcode);
            classcodes.EquivalanceCode="EquivalanceCode value";
            using (ITransaction transaction = session.BeginTransaction())  
            {  
                session.SaveOrUpdate(classcodes);  
                transaction.Commit();  
            }  
        }