DBContext String构造函数超过128个字符



我正在使用EntityFramework和SQLCompact创建DB。我正在尝试使用有时超过128个字符的路径来创建一个新的DB文件,并且在发生这种情况时会得到一个例外。

密钥"初始目录"的值的长度超过了它的限制 '128'。

无论如何是否有更改此行为并使用连接字符串更长的?

public class DbTestingContext: DbContext
{
    public DbTestingContext() : base(GetConnectionString())
    {
        Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DbTestingContext>());
    }
    public virtual DbSet<TestingModel> Tests { get; set; }
    private static string GetConnectionString()
    {
        return Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "/db/",
            "TestingPrototypes.DbTests.DbTestsContext.sdf");
    }
}

最后我解决了它。问题在于,尽管我已经安装并编码了我忘了将默认连接更改为DB的所有内容,并且我正在使用提供VS2015的内部连接。

一旦我将其更改为使用SQLCompact,该异常在连接字符串中带有128个chars的异常已经消失了,并且何时访问DB(如果不存在),则会创建一个新的。

更改app.config

<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
  <parameters>
    <parameter value="mssqllocaldb" />
  </parameters>
</defaultConnectionFactory>

对此:

<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
  <parameters>
    <parameter value="System.Data.SqlServerCe.4.0" />
  </parameters>
</defaultConnectionFactory>

最新更新