Как создать отдельный файл (.vb или .cs) для каждой таблицы в БД, используя subsonic 3.0 - PullRequest
0 голосов
/ 22 марта 2011

Я использую дозвуковую версию 3 для создания своего уровня DAL в приложении ASP.NET с VB.NET (.NET Framework 3.5).я использовал дозвуковую версию 2 и я создавал отдельный файл .cs для каждой таблицы и события, которое каждый файл класса имеет в методе с именем LoadByParam () или LoadByKey () в случае, если нужно загрузить объект, передав несколькозначение поля.

но в дозвуковой 3, когда я добавляю основной файл и добавляю шаблон T4 в свой проект, он генерирует три файла vb с именами activrecord.vb, context.vb и struct.vb

Я хочучтобы узнать, как я могу загрузить всю таблицу в отдельный файл, как в subsonic, как загрузить объект базы данных, передав некоторое поле как поле, то есть в subsonic 2.0, когда я хочу загрузить пользовательскую таблицу с некоторым идентификатором, я загружал ее таким образом, новыйmyProject.user (имя-столбца, значение-поля);Как я могу достичь того же с дозвуковой 3.0 ??

1 Ответ

0 голосов
/ 22 марта 2011

Если вы спросите меня, я бы добавил библиотеку классов c # в ваш проект и использовал бы ее для вашего DAL, поскольку c # имеет более широкую пользовательскую базу и, следовательно, более протестирован. VB и C # отлично работают вместе в решении

При этом последние шаблоны c # уже создают отдельные файлы: https://github.com/subsonic/SubSonic-3.0-Templates/tree/master/ActiveRecord

Полагаю, никто не перенес код на атм vb.net.

Что касается вашего второго вопроса (как загрузить объект по имени столбца), subsonic 3 интенсивно использует лямбда-выражения, поэтому вам нужно использовать только перегрузку, которая принимает выражение (Func (из User, Boolean))

Другими словами:

dim user1 as new User(Function(x) x.UserName = "Test")

или

dim user2 as User = User.SingleOrDefault(Function(x) x.UserName = "Test")

или даже

dim user3 as User = (From u in User.All()
                     Where u.UserName = "Test"
                     Select u).SingleOrDefault()

последние два возвращают объект User или Nothing. Первый всегда возвращает объект, даже если пользователь не существует, поэтому вы должны проверить user1.IsNew () при необходимости.

...