ADO.net,检查ObjectContext是否可写

时间:2010-03-25 12:00:19

标签: asp.net-mvc entity-framework ado.net objectcontext

我在asp.net mvc项目中有一个嵌入式数据库。如果我尝试写入该文件,我有时会得到写入失败的异常,因为SQL Server无法写入该文件。如果ObjectContext是可写的,如何在不实际写入数据库的情况下检查它?

1 个答案:

答案 0 :(得分:0)

你可以直接对数据库执行类似这样的操作,如果它是只读的,则找出它:

SELECT DATABASEPROPERTYEX('DatabaseName','Updateability')

要做到这一点,你会使用:

  • EF 4.0 => ObjectContext.ExecuteStoreCommand(..)
  • EF 3.5 => (ObjectContext.Connection as EntityConnection).StoreConnection as SqlConnection进入底层数据库连接,然后创建一个SqlCommand。

一旦你弄明白这一点,我可能会把它变成一个扩展方法,所以你可以做这样的事情:

if (ctx.ReadOnly()) ...

希望这有帮助

亚历