我正在使用entityFramework和SQLCompact创建数据库。我正在尝试使用有时长度超过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");
}
}
答案 0 :(得分:1)
最后我解决了。问题是,尽管我已经安装并编码了所有内容,但我忘记更改与DB的默认连接,而我使用的是提供VS2015的内部连接。
一旦我改变它以使用SQLCompact,在连接字符串中删除了128个字符的异常已消失,当访问路径时如果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>