Просто окунулся в проект Linq2sql после нескольких лет катания моих собственных процедур доступа к БД SQL Server.
Прежде чем я потрачу слишком много времени на выяснение того, как заставить linq2sql вести себя так, как это делал мой пользовательский код, я хочу проверить, чтобы убедиться, что это не «встроенное» поведение, которое я могу просто использовать, настроив отношения прямо в конструкторе ...
Очень простой пример:
У меня есть две таблицы: Person и Notes, с отношением 1 ко многим (1 Person, много заметок), связанные Person.ID-> Note.PersonID.
У меня есть хранимая процедура (весь доступ к данным осуществляется через SP, и я планирую продолжить это), что делает Link2SQL немного более эффективной для меня.
sp_PersonGet (@ID int) , который возвращает запись о человеке, и sp_PersonNotesGet (@PersonID) , которая возвращает набор связанных заметок для этого человека.
Пока все хорошо, у меня есть объект:
Dim myPerson As Person = db.PersonGet(pnID).Single
и я могу получить доступ к своим полям: myPerson.Name, myPerson.Phone и т. Д.
и я также могу сделать
Dim myNotes As Notes = db.PersonNotesGet(pnID)
, чтобы получить набор заметок, и я могу перебрать этот список как:
For Each N As Note In myNotes
( do something)
Next
Это все отлично работает ... НО .... Я бы предпочел, чтобы, если я позвоню:
myPerson = db.PersonGet(pnID)
что я также получаю коллекцию myPerson.Notes, которую я могу повторить.
For Each N As Note In myPerson.Notes
( do something)
Next
Обычно Linq2SQl должен вызывать 2 хранимые процедуры каждый раз, когда создается запись Person ...
Это выполнимо "из коробки", или мне нужно кое-что написать для себя?