То, что вы хотите, это в основном Isolation
.
Для этого вы можете следовать нескольким правилам:
- Объявление в БД StoredProcedures / Views или в коде, ваши запросы всегда параметризованы
CompanyName
, всегда. В этом случае вы не можете вызвать любую функцию восстановления данных без указания названия компании.
- Убедитесь, что в ваших запросах из БД извлекаются только те данные, которые указаны в CompanyName и связаны с ним.
- В пользовательском интерфейсе CompanyName снова должны быть первостепенными для вашего интерфейса пользовательского интерфейса, и первое, что пользователь должен объявить.
Как-то так, трудно сказать что-то более точное, не зная реальных требований проекта.
Что касается LINQ vs DB, это зависит от вашего масштаба. Учтите, что LINQ будет медленнее, чем StoredProcedure или View, начиная с определенного масштаба. Но это то, что вы должны измерить. Причина с точки зрения комфорта LINQ, естественно, является более предпочтительным решением.