Разделение кода по слоям обычно помогает, потому что вы не смешиваете пользовательский интерфейс с бизнес-уровнем или уровнем доступа к данным ... если это то, что вы просили, потому что довольно сложно понять, что вы хотите изменить в вашем коде.
В противном случае ваш код выглядит как смесь всего, становится трудно поддерживать и понимать, что он делает.
Редактировать
Вместо того, чтобы устанавливать каждое свойство вручную, вы можете сделать:
Использовать инициализаторы объектов (функция C # 3.0)
TableA record = new TableA {
TableB = myDB.TableB.First(a => a.Id == formdata.TableB.Id),
Field1 = ... ,
...
};
Использовать статические фабричные методы, предоставляемые классами сущностей:
TableA record = TableA.CreateTableA(/* provide all values as method parameters */);