C# 为什么NHibernate会给我这个错误;无法解析属性:of:Customers“;
我有下表:C# 为什么NHibernate会给我这个错误;无法解析属性:of:Customers“;,c#,nhibernate,C#,Nhibernate,我有下表: Customers: ID int PK FirstName varchar(50) LastName varchar(50) 我的映射文件:Customer.hbm.xml <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Viper.Da
Customers:
ID int PK
FirstName varchar(50)
LastName varchar(50)
我的映射文件:Customer.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Viper.DataAccess"
namespace="DataAccess">
<class name="Customer" entity-name="Customers" dynamic-update="true" >
<id name="ID">
<generator class="native" />
</id>
<property name="FirstName" />
<property name="LastName" />
</class>
</hibernate-mapping>
代码snippit:
using (ISession session = sessionFactory.OpenSession())
{
var query = from customer in session.QueryOver<Customer>()
select customer;
var c = query.Take(1).SingleOrDefault<Customer>();
}
使用(ISession session=sessionFactory.OpenSession())
{
var query=来自会话中的客户。QueryOver()
选择客户;
var c=query.Take(1.SingleOrDefault();
}
我收到一个错误“无法解析属性:of:客户”
你知道为什么我会犯这个错误吗
编辑:
我将我的查询修改为:
var query = from customer in session.QueryOver<Customer>()
where customer.ID >= 0
select customer;
var query=来自会话中的客户。QueryOver()
其中customer.ID>=0
选择客户;
而且效果很好
请告诉我,为了让NHibernate正常工作,我不需要有无意义的where子句 你在那里混合了QueryOver和Linq。这是完全错误的做法。因此,您应该使用NHibernate.Linq添加
代码>到您的使用
并使用session.query()
而不是session.QueryOver()
使用(ISession session=sessionFactory.OpenSession())
{
var query=来自会话中的客户。query()
选择客户;
var c=query.Take(1.SingleOrDefault();
}
应该有session.Query()
根据我的智能感知,我认为没有。。。我是不是错过了一个推荐人?你把QueryOver和Linq混在一起了。这是完全错误的做法。因此,您应该使用NHibernate.Linq添加
并使用session.Query()你能把它作为一个答案,这样我就可以投票给你了吗?那很有效!非常感谢。
using (ISession session = sessionFactory.OpenSession())
{
var query = from customer in session.Query<Customer>()
select customer;
var c = query.Take(1).SingleOrDefault<Customer>();
}