我在我的数据库中创建了一个包含5列的新视图。
此视图已通过NHibernate HBM文件映射:
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="IDB.Core.Entities.vVirksomhederMedPRTROverGraenseVaerdierne,IDB.Core" table="vVirksomhederMedPRTROverGraenseVaerdierne" lazy="false">
<id name="Virksomhed_ID" column="Virksomhed_ID"/>
<property type="string" name="CvrNavn" column="[CvrNavn]" />
<property type="string" name="CvrPNavn" column="[CvrPNavn]" />
<property type="int" name="Aar" column="[Aar]" />
<property type="string" name="Kode" column="[Kode]" />
</class>
</hibernate-mapping>
沿着HBM文件,我还有一个C#类:
[Serializable]
public class vVirksomhederMedPRTROverGraenseVaerdierne : EntityWithSerializableId
{
public virtual int Virksomhed_ID { get; set; }
public virtual string CvrNavn { get; set; }
public virtual string CvrPNavn { get; set; }
public virtual int Aar { get; set; }
public virtual int Kode { get; set; }
}
这与项目中的所有其他HBM文件和C#类非常相似。
现在的问题是,当我做这样的事情时:
public List<vVirksomhederMedPRTROverGraenseVaerdierne> GetVirksomhederOverGraenseVaerdier(int year)
{
var result = from v in session.Linq<vVirksomhederMedPRTROverGraenseVaerdierne>()
where v.Aar == year
select v;
}
结果是空的??? 但是,如果我执行以下操作,则返回数据:
var query = session.CreateSQLQuery("SELECT * FROM vVirksomhederMedPRTROverGraenseVaerdierne where aar = " + aar);
我能忘记什么,因为我的linq表达式只产生空结果? 欢迎任何建议。