Rag*_*ale 4 .net c# sqlite system.data.sqlite entity-framework-4
我正在使用实体框架工作,并且休息是我的创建上下文方法,我已经在调用时启用了外键,但令我惊讶的是,值变量始终为0
private static DataBaseEntity CreateContext()
{
var context = new DataBaseEntity("name=DataBaseEntity");
context.ExecuteStoreCommand("PRAGMA foreign_keys = ON");
var value = context.ExecuteStoreCommand("PRAGMA foreign_keys");
return context;
}
Run Code Online (Sandbox Code Playgroud)
我想在删除功能上有级联,但我无法得到它,因为外键约束没有设置
我正在使用SQLite 3.6.23.1与ado.net提供程序
小智 9
打开外键只能在数据库连接的生命周期内工作.默认情况下,ObjectContext将打开一个连接并关闭它回来时,你与数据库进行交互那将是通过调用SaveChanges(),ExecuteStoreCommand()或以其他方式.如果您不想要此行为,则必须手动打开连接,并在完成ObjectContext对象时理想地将其关闭.
我自己更喜欢在连接字符串中打开外键,这样我就不用担心上面提到的任何问题了.
例如,在你的app.config文件中你会有这样的东西(寻找属性foreign keys=True的末尾connectionString):
<configuration>
<connectionStrings>
<add name="DataBaseEntity"
connectionString="metadata=res://*/m.csdl|res://*/m.ssdl|res://*/m.msl;provider=System.Data.SQLite;provider connection string="data source=C:\foo.db;foreign keys=True""
providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我认为这应该适用于您的ADO .Net提供商,但我不能做出承诺.如果您升级到SQLite网站上提供的最新版本,您可以增加它正常工作的几率.
| 归档时间: |
|
| 查看次数: |
1798 次 |
| 最近记录: |