我正在使用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>