Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq NHibernate 3使用SQL Compact 4.0和FirstOrDefault()抛出NotSupportedException_Linq_Nhibernate_Sql Server Ce - Fatal编程技术网

Linq NHibernate 3使用SQL Compact 4.0和FirstOrDefault()抛出NotSupportedException

Linq NHibernate 3使用SQL Compact 4.0和FirstOrDefault()抛出NotSupportedException,linq,nhibernate,sql-server-ce,Linq,Nhibernate,Sql Server Ce,我有一段相当简单的代码,可以从数据库中检索对象。这在SQLServer2008中似乎可以正常工作,但在SQLServerCompact中却失败了。SQL Server CE支持TOP()-这只是NHibernate 3中的一个bug吗 代码: 你用错方言了。使用mssqlce40方言对于我来说,mssqlce40方言不起作用,我必须覆盖自定义方言中的SupportsVariableLimit以获得分页工作 public class MyDialect : MsSqlCe40Dialect {

我有一段相当简单的代码,可以从数据库中检索对象。这在SQLServer2008中似乎可以正常工作,但在SQLServerCompact中却失败了。SQL Server CE支持TOP()-这只是NHibernate 3中的一个bug吗

代码:


你用错方言了。使用
mssqlce40方言

对于我来说,mssqlce40方言不起作用,我必须覆盖自定义方言中的SupportsVariableLimit以获得分页工作

public class MyDialect : MsSqlCe40Dialect
{
    public override bool SupportsVariableLimit
    {
        get
        {
            return true; 
        }
    }
}

我切换到MSSQLSCE40方言,这没有什么区别。我刚刚尝试了你的代码,效果很好。您使用的是最新版本(3.2 GA)吗?如果它“没有什么不同”,您可能忘记了编译或部署,因为MSSQLCE40方言正好实现了这一功能(分页)。我知道,因为我是最初的autor:-)我有3.2.0.4000版的NHibernate.dll,让我再多玩一玩,确保我对config.xml的更改被读取。它可以工作!在再次测试之前,我一定没有将配置xml复制到输出文件夹。谢谢(既感谢您的回答,也感谢您的NHibernate首先为支持它所做的贡献)
<property name="dialect">NHibernate.Dialect.MsSqlCeDialect</property>
<property name="connection.driver_class">NHibernate.Driver.SqlServerCeDriver</property>
System.NotSupportedException occurred
  Message=Dialect does not support limits.
  Source=NHibernate
  StackTrace:
       at NHibernate.Dialect.Dialect.GetLimitString(SqlString queryString, Nullable`1 offset, Nullable`1 limit, Parameter offsetParameter, Parameter limitParameter)
  InnerException: 
public class MyDialect : MsSqlCe40Dialect
{
    public override bool SupportsVariableLimit
    {
        get
        {
            return true; 
        }
    }
}