Имя базы данных не с префиксом; это схема (исторически: владелец, но немного более сложный) объекта. Он не будет работать без схемы, , особенно для UDF, где он является обязательной частью синтаксиса вызова в TSQL.
Под этим я подразумеваю:
select * from DeletePlnAttributeSelectableValue(...)
is not valid TSQL; он должен включать схему, например:
select * from dbo.DeletePlnAttributeSelectableValue(...)
База данных будет до этой; Наименование объекта из нескольких частей:
[[[server].][[database].][schema].]object
, поэтому foo
- это объект с именем foo
, а somedb..foo
равен foo
в базе данных somedb
.
I подозреваю проблема здесь в том, что вы выбрали "схему по умолчанию" для базы данных для каждой базы данных, что является плохим дизайном, IMO.
Контекст данных LINQ прекрасно работает с любой базой данных с соответствующими объектами - вы просто предоставляете строку соединения (или соединение) во время выполнения через конструктор.