C# 如果我的连接字符串包含max database size关键字,为什么SQL Server Compact Edition无法打开现有SDF文件?

C# 如果我的连接字符串包含max database size关键字,为什么SQL Server Compact Edition无法打开现有SDF文件?,c#,sql,linq,entity-framework,sql-server-ce,C#,Sql,Linq,Entity Framework,Sql Server Ce,我一直看到这个例外: ex={不支持关键字:“最大数据库大小”。} 当我尝试运行LINQ查询行时,会引发以下代码异常: LogContext l = new LogContext(connectionString); var v = from log in l.Logs select log; count += v.Count(); LogContext类如下所示: public class LogContext : DbContext { public LogContext()

我一直看到这个例外:

ex={不支持关键字:“最大数据库大小”。}

当我尝试运行LINQ查询行时,会引发以下代码异常:

LogContext l = new LogContext(connectionString);
var v = from log in l.Logs select log;
count += v.Count();
LogContext类如下所示:

public class LogContext : DbContext
{
    public LogContext()
        : base()
    {
    }
    public LogContext(string connectionString)
        : base(connectionString)
    {
    }
    public DbSet<LogRecord> Logs { get; set; }
}

“我的连接字符串”包含“最大数据库大小”属性。它抛出这个异常有什么原因吗?SQL Server Compact Edition是否仅在创建数据库时使用“最大数据库大小”属性一次,并将此信息存储在本地文件或其他文件中,以便在此后指定此属性时无法连接到此文件?因为当我创建新数据库时,这一切都会起作用。

设置DefaultConnectionFactory似乎对我有用:

Database.DefaultConnectionFactory=new SqlCeConnectionFactorySystem.Data.SqlServerCe.4.0


您是否使用SQL Server Compact提供程序?如果使用SQL Server提供程序,会出现此错误吗?显示您的配置…请在发布配置之前屏蔽所有用户ID/密码和任何公共ip。您能提到将此初始化放置在何处吗?它应该来自上下文类的构造函数吗?@YeasinAbedinSiam考虑到6年前的情况,我不再完全确定了。但是,假设在使用SqlCeConnection类创建到sqlcedb的连接之前,库使用工厂模式。因此,您正在告诉工厂如何提前生产连接件。