我有一个现有的(加密的) SQLite DB,我想动态解密并将其加载到内存中。有人知道如何告诉c# .NET实体框架使用我的“内存中”-DB吗?!
也许有一个选项@ App.Config?!我不想让我的数据库在硬盘上被解密。
致敬,DoubleVoid
编辑:我想把整个SQLite DB加载到内存中(例如:一个变量,字节流...)并告诉EF与此对象/流进行通信。我不想在我的App.Config中有这样的连接字符串:
<connectionStrings>
<add name="Chinook_Sqlite_AutoIncrementPKsEntities" connectionString="metadata=res://*/EF.Model1.csdl|res://*/EF.Model1.ssdl|res://*/EF.Model1.msl;provider=System.Data.SQLite;provider connection string="data source=EF\Chinook_Sqlite_AutoIncrementPKs.sqlite"" providerName="System.Data.EntityClient" /></connectionStrings>
</configuration>发布于 2013-11-23 03:45:41
Entity Model有一个重载,您可以在Entity Model的初始化中提供连接字符串。
var model = new yourModel(ModelConnStr());Helper函数:
public static string ModelConnStr()
{
System.Data.SqlClient.SqlConnectionStringBuilder sqlcon = new System.Data.SqlClient.SqlConnectionStringBuilder();
sqlcon.DataSource = "your datasource";
sqlcon.InitialCatalog = "your db";
sqlcon.UserID = "id";
sqlcon.Password = "pswrd";
System.Data.EntityClient.EntityConnectionStringBuilder mdlcon = new System.Data.EntityClient.EntityConnectionStringBuilder();
mdlcon.Metadata = "res://*/BMModel.csdl|res://*/BMModel.ssdl|res://*/BMModel.msl";
mdlcon.Provider = "System.Data.SqlClient";
mdlcon.ProviderConnectionString = sqlcon.ConnectionString;
return mdlcon.ConnectionString;
}现在,对于sqLite,您可以使用不同但相似的对象。
https://stackoverflow.com/questions/20152686
复制相似问题