как то так
Лучше сперва открыть таблицу приложений просто для чтения, и если приложение не зарегистрировано - тогда уже UpgradeOpen для записи.
P.S. Вот в таких случаях я очень сожалею, что разработчики языка C# дали возможность использовать конструкции if и using без явного указания блока. И ещё эта убогая инициализация значения полей! Код ужасно читается! Ещё до кучи, тогда уж, надо было в одну строчку записать, чтобы совсем тяжко было разбираться
:
using (RegAppTable rat = db.RegAppTableId.Open(OpenMode.ForWrite) as RegAppTable) if (!rat.Has(nameApp)) using (RegAppTableRecord regApp = new RegAppTableRecord() { Name = nameApp }) rat.Add(regApp);