LINQ to SQL проблема - PullRequest
4 голосов
/ 20 мая 2011

У меня следующие проблемы с сущностями 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
    });

Это не будет автоматически сохранено в БД.

Не могли бы вы объяснить, это ошибка или функция и как яможет решить это?

1 Ответ

4 голосов
/ 20 мая 2011

Это по замыслу. Класс и Комната являются контекстно-зависимыми объектами, так как они были опрошены против контекста. Каждый раз, когда контекстно-зависимая сущность добавляет дочерние элементы, она автоматически помещает эти изменения в очередь и помечает их как вставленные. Таким образом, вы не можете добавлять новые объекты без функции автоматической очереди. Я настоятельно рекомендую не вызывать сохранения изменений позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...