2008-12-14 6 views
3

При попытке использовать LINQ to SQL я столкнулся с несколькими проблемами.LINQ to SQL

У меня есть таблица человек:

  • INT ID
  • строка ПгвЬЫате
  • строка LastName

И примечания к таблице, которая имеет:

  • INT ID
  • строка noteText
  • строка CreatedBy
  • DateTime CreationDate
  • INT PersonID

PersonID является внешним ключом и отношения 1: п

Я пытался использовать LINQ to SQL, чтобы создать человека и некоторые заметки для каждого человека.

Person person = new person(); 
Person.firstName = "me"; 
Person.note = new note(); 
Person.note.noteText = "some text…"; 

_DataContext.Persons.InsertOnSubmit(person); 
_DataContext.SubmitChanges(); 

Проблема в том, что объект person еще не существует в БД, так что у него еще нет идентификатора. Таким образом, файл note.personID имеет значение 0 ... (поле ID является полем идентификатора на сервере sql)

Единственное решение для этого, что я нашел, это создать человека, подчиниться, а затем создать заметку и подписание еще раз.

Я что-то пропустил или, может быть, так нужно работать с LINQ to SQL?

Как добавить несколько заметок на человека с помощью LTS? У меня отношение 1: n, и я не вижу его с LTS.

Если у человека есть 10000 заметок, я не хочу, чтобы конструктор объекта человека загружал все ноты, которые у него есть. Я хочу загрузить их только тогда, когда я обращаюсь к ним. Как я могу настроить LTS для загрузки заметок по требованию?

+0

- ваш личный идентификатор внешнего ключа на столе с примечаниями? Если это так, оно должно автоматически управляться так, как вы хотите – JohnIdol 2008-12-14 18:13:37

+0

Очень хорошо написанный вопрос! +1 – 2009-04-01 08:18:55

ответ

3

Если вы не используете конструктор классов LinqToSql, вы должны подумать об использовании его. Созданные классы будут поддерживать описанный вами сценарий вставки.

Я могу сказать, что вы не используете конструктор, потому что это даст вам свойство Notes (множественное число) на Человеке ... как Лицо от 1 до многих с заметками.

Как настроить LTS для загрузки заметок по требованию?

Дизайнер сгенерирует свойство типа EntitySet (Примечание), которое будет загружать Notes по запросу.