c# - LINQ to SQL 问题

标签 c# .net linq linq-to-sql

我在使用 LINQ to SQL 实体时遇到以下问题:

// Context is DataContext that was auto genereted when i create my .dbml file

var cl = Context.Classes.ToArray();
var rm = Context.Rooms.ToArray();

List<DaySchedule> s = new List<DaySchedule>();
s.Add(new DaySchedule()
    {
        Class = cl[0],
        DayOfWeek = 0,
        Pair = 1,
        Room = rm[0]
    });
Context.SubmitChanges();

因此,在“SubmitChanges”之后,新的 DaySchedules 将被保存到数据库中。但是我没有调用 InsertOnSubmit 函数,我不想保存这个 DaySchedule。

顺便说一句, 如果我将使用以下代码:

s.Add(new Acceron.University.DBAccess.DaySchedule()
    {
        Class_id = cl[0].Class_ID,
        DayOfWeek = 0,
        Pair = 1,
        Room_id = rm[0].Room_ID
    });

它不会自动保存到数据库。

您能解释一下它是错误还是功能,我该如何解决?

最佳答案

这是设计使然。 Class 和 Room 是上下文感知实体,因为它们是根据上下文查询的。任何时候上下文感知实体添加子项时,它都会自动将这些更改排队到上下文中并将其标记为已插入。因此,如果没有自动排队功能,您将无法添加新实体。我强烈建议以后不要调用保存更改。

关于c# - LINQ to SQL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6069418/

相关文章:

c# - 使用 linq lambda 从具有多个链接表的数据集中填充 C# 类

c# - PCL 程序集和读取资源文件

c# - Sitecore WFFM - 使用 session 中的数据预加载表单

c# - LINQ 中的维恩图样式分组

c# - 如何将 Linq 结果与 RDLC 报告一起使用?

javascript - 如何向在后面的 C# 代码中创建的 div 添加 onclick 事件?

c# - 如何处理来自 SQL Server 的 DBNull DateTime 字段?

c# - 在 .NET 中使用来自另一个程序集的抽象类

c# - 什么时候使用 C# ref 关键字是个好主意?

mysql - 使用linq编写sql语句