Так что после некоторого копания я нашел приемлемое решение. Я создал частичный класс для своего контекста данных и добавил частичный метод Insert_ для каждой таблицы, которая связана с aspnet_Applications . В каждом методе я устанавливаю в поле ApplicationId текущий идентификатор приложения.
Это выглядит так:
public partial class MyDataContext
{
partial void InsertMyTable(MyTable instance)
{
instance.ApplicationId = HttpContext.Current.Session["ApplicationId"] as Guid?;
this.ExecuteDynamicInsert(instance);
}
}
Обратите внимание, что вы не можете выполнять другие операторы LINQ в этом методе. В частности, мне пришлось хранить идентификатор приложения в сеансе, а не запрашивать таблицу aspnet_Applications .
Хотя это приемлемое решение, оно не идеально (много повторяющегося кода), поэтому, если кто-нибудь знает, лучше бросьте мне кость:)