Вы можете выполнить что-то подобное непосредственно для базы данных, чтобы узнать, доступно ли это только для чтения или нет:
ВЫБРАТЬ DATABASEPROPERTYEX («Имя_базы данных», «Возможность обновления»)
Для этого вы бы использовали:
- EF 4.0 =>
ObjectContext.ExecuteStoreCommand(..)
- EF 3.5 =>
(ObjectContext.Connection as EntityConnection).StoreConnection as SqlConnection
, чтобы получить подключение к базовой базе данных, а затем создать SqlCommand.
Как только вы это выясните, я, вероятно, превратил бы это в метод Extension, чтобы вы могли сделать что-то вроде этого:
if (ctx.ReadOnly()) ...
Надеюсь, это поможет
Alex