c# Linq-to-SQL在Ado.net插入后没有更新

本文关键字:更新 插入 net Linq-to-SQL Ado | 更新日期: 2023-09-27 18:02:26

我创建了一个1:我通过ADO.net创建的许多关系和批量插入没有传播到我的LINQ-to-SQL数据上下文。

TABLE School
  int schoolId
  int maxStudents
  ...
TABLE Students
  int studentId
  int schoolId
  DateTime birthdate
  ...

如果我批量添加500个学生到Students表,我的数据上下文不会更新. students。它只是说。students . count () == 0

编辑下面是一个例子:

// Create a Repository
Repository Repo = new Repository();
string[] schoolNames = GetSchoolNames();
// Pull in the schools.
IEnumerable<School> schools = Repo.GetSchools(schoolNames);
foreach (School school in schools) school.DoSomeDirectDBWork();
schoolNames = schools.Select(school => school.name).ToArray();
Repo.Dispose();  // Flush/Close/Dispose
Repo = new Repository();  // New repository, new data context.
schools = Repo.GetSchools(schoolNames);
// ** THE SCHOOLS HAVE NO STUDENTS AT THIS POINT IN THE CODE.
// ** <SAD FACE>

c# Linq-to-SQL在Ado.net插入后没有更新

我想知道这是否只是缓存。如果您强制它加载一组未过滤的学生,那么当然—它可能会信任该设置(在加载点为空)。DataContext旨在是短暂的;尝试在插入后创建一个新的,然后重试。如果这还没有读取空表,它应该找到你的数据。

另外,检查您没有两个student表—例如dbo。学生vs蓝色夏季学生。