Database 我可以使用实体框架的连接,还是应该创建一个新的连接?
我有一个SQLite数据库,可以使用它进行访问。数据库被读入我的实体框架Objectcontext。但是,在某些情况下,我还需要直接访问数据库Database 我可以使用实体框架的连接,还是应该创建一个新的连接?,database,entity-framework,sqlite,database-connection,system.data.sqlite,Database,Entity Framework,Sqlite,Database Connection,System.data.sqlite,我有一个SQLite数据库,可以使用它进行访问。数据库被读入我的实体框架Objectcontext。但是,在某些情况下,我还需要直接访问数据库 我是否可以/应该使用实体框架对象上下文正在使用的相同连接?例如,ObjectContext.Connection 如果是,我如何访问它?将Entities.Connection强制转换为SQLiteConnection会导致“无法将类型为'System.Data.EntityClient.EntityConnection'的对象强制转换为类型为'Syst
ObjectContext.Connection
Entities.Connection
强制转换为SQLiteConnection
会导致“无法将类型为'System.Data.EntityClient.EntityConnection'的对象强制转换为类型为'System.Data.SQLite.SQLiteConnection'如果您使用的是DBContext API,那么实际上可以使用以下命令执行直接查询:aDBContext.Database.SqlQuery 如果ObjectContext API中存在类似的东西,我不会感到惊讶,但我几乎没有使用过它,因此无法告诉您它是什么
现在,如果出于某种原因您不能(或不想)这样做,我将为您的自定义查询创建一个新连接。将它们放在一个Using中,并在完成后立即关闭它。如果您使用的是DBContext API,则可以使用以下命令执行直接查询:aDBContext.Database.SqlQuery 如果ObjectContext API中存在类似的东西,我不会感到惊讶,但我几乎没有使用过它,因此无法告诉您它是什么
现在,如果出于某种原因您不能(或不想)这样做,我将为您的自定义查询创建一个新连接。将它们放入一个Using中,并在使用完毕后立即关闭。
实体框架
内置了执行原始SQL查询的方法(如果您需要执行原始SQL查询)。实体框架
内置了执行原始SQL查询的方法(如果您需要执行原始SQL查询)。ObjectContext.Connection实体连接
。您可以通过以下方式获得门店连接:
var sc = ((EntityConnection)ObjectContext.Connection).StoreConnection;
您可以将其强制转换为SQLiteConnection
如果需要,可以使用此连接
但是,正如@Chris所提到的,您可以只使用ObjectContext.ExecuteStoreQuery
等,如果这对您有用的话。ObjectContext.Connection
是一种实体连接。您可以通过以下方式获得门店连接:
var sc = ((EntityConnection)ObjectContext.Connection).StoreConnection;
您可以将其强制转换为SQLiteConnection
如果需要,可以使用此连接
但是,正如@Chris所提到的,您可以使用ObjectContext.ExecuteStoreQuery
等,如果这样做对您有帮助的话。我最终使用了ObjectContext.ExecuteStoreQuery
,这非常有效。谢谢,最后我读了这个问题并使用了答案,却没有意识到原来是我发布的!克雷格,如果我能标记两次,我会的!我最终使用了ObjectContext.ExecuteStoreQuery
,这非常有效。谢谢,最后我读了这个问题并使用了答案,却没有意识到原来是我发布的!克雷格,如果我能标记两次,我会的!