2008-12-14 297 views
3

嘗試使用LINQ to SQL時,遇到了幾個問題。LINQ to SQL

我有表的人:

  • INT ID
  • 串的firstName
  • 字符串的lastName

和表注有:

  • INT ID
  • 串noteText
  • 串createdBy
  • 日期時間creationDate
  • INT是PersonID

是PersonID是一個外鍵的關係是1:N

我試圖用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對象在數據庫中還不存在,所以它還沒有ID。所以note.personID字段有一個0值...(ID字段是sql服務器中的標識字段)

我發現的唯一解決方案是創建一個人,submitchanges然後創建一個筆記並提交變化再次。

我在這裏錯過了一些東西,或許這就是應該使用LINQ to SQL的方式嗎?

如何使用LTS爲每個人添加多個筆記?我有1:n的關係,我沒有看到它與LTS。

如果一個人有10000個筆記,我不想讓person對象構造函數加載他所有的筆記。我只想在我引用它們時加載它們。我如何配置LTS按需加載筆記?

+0

是你的PersonID筆記表上的外鍵嗎?如果是這樣,它應該自動管理你想要的方式 – JohnIdol 2008-12-14 18:13:37

+0

寫得很好的問題! +1 – 2009-04-01 08:18:55

回答

3

如果你不使用LinqToSql類設計器,你應該考慮使用它。它生成的類將支持您列出的插入方案。

我可以告訴你沒有使用設計器,因爲它會給你一個Notes(複數)屬性的人......因爲人是從1到多與Notes。

如何配置LTS以按需加載筆記?

設計人員將生成一個EntitySet(注)類型的屬性,它將按需加載Notes。