LINQ to SQL

时间:2008-12-14 17:30:18

标签: linq-to-sql

在尝试使用LINQ to SQL时遇到了一些问题。

我有桌面人员:

  • int ID
  • string firstName
  • string lastName

表符号包含:

  • int ID
  • string noteText
  • string createdBy
  • datetime 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 server中的标识字段)

我找到的唯一解决方案是创建一个人,提交更改,然后创建一个注释并再次提交更改。

我在这里遗漏了一些东西,或者这可能是LINQ to SQL的用法吗?

如何使用LTS为每个人添加多个笔记?我有一个1:n的关系,我没有看到LTS。

如果一个人有10000个笔记,我不希望person对象构造函数加载他拥有的所有笔记。我想在我引用它们时加载它们。如何配置LTS按需加载笔记?

1 个答案:

答案 0 :(得分:3)

如果您不使用LinqToSql类设计器,则应考虑使用它。它生成的类将支持您概述的插入方案。

我可以告诉你没有使用设计器,因为它会在Person上给你一个Notes(复数)属性......因为Person是1到多数的Notes。

  

如何配置LTS按需加载笔记?

设计器将生成EntitySet(Note)类型的属性,该属性将根据需要加载Notes。