2010-12-08 3 views
0

Я пытаюсь реализовать бизнес-логику с помощью моего класса Linq-to-SQL. Таблица в классе имеет al поле: «IsActive» и поле: «InActiveDate».Бизнес-логика с использованием Linq-To-SQL

Я пытаюсь заполнить неактивную дату, когда поле «IsActive» (логическое) изменяется.

Для этого я создал новый класс, содержащий открытый частичный класс для объекта, который должен измениться.

partial void OnIsActiveChanged() 
    { 
     if ((bool)this.IsActive) 
     { 
      this.InActiveDate= null; 
     } 
     else 
     { 
      this.InActiveDate = DateTime.Now; 
     } 
    }  

Что я делаю неправильно? Поле InActiveDate остается пустой в базе данных без единой ошибки.

ответ

2

Не похоже, что вы вообще делаете свои изменения в базе данных. После того, как вы установите значение для объекта, вам нужно позвонить SubmitChanges(); в свой DataContext.

+0

Я использую LinqDataSource с DetailsView. Если я прав, событие onchange происходит после внесения изменений в подробное описание. Когда вы переходите через программу, похоже, что изменения перезаписываются значением, предоставленным представлением деталей. ЕСЛИ это правильно, зачем использовать бизнес-логику? – 2010-12-08 17:27:19

0

Joel прямо на цель ... LINQ извлекает данные из базы данных, а затем рассматривает его как обычный класс. Вы можете изменить все, что вам нравится, без изменения базы данных. Для того, чтобы на самом деле сохранить свою работу вам нужно настроить объявить переменную для DataContext

, как показано ниже

SomeNameDataContext db = new SomeNameDataContext(); 

db.SubmitChanges();