Значения по умолчанию для LINQ to SQL - PullRequest
5 голосов
/ 06 октября 2010

Мы все знаем, что Linq to SQL (и SQLmetal / exe) действительно является продуктом «прототипного» качества (в нем отсутствуют базовые функции, такие как «обновление» схемы и обнаружение пустых столбцов со значением по умолчанию).

Есть ли способ автоматически создать мой .dbml (аналогично LINQ to SQL или SQLmetal) и определить, есть ли NOT NULL столбцы со значением по умолчанию?

Требования: это должно быть так же просто, как и linq-to-sql или sqlmetal.


Разъяснение того, что мне нужно этодля:

У меня есть много таблиц с полями DateCreated и DateModified, а также некоторые столбцы bit и enum-like (int) со значениями по умолчанию;все это должно быть и not null.

. Мне нужно будет восстановить («обновить») файл .dbml после внесения изменений в базу данных ... поэтому (пере) настройте автогенерацию (илиСвойство Auto-Sync ) для True - это не то, что я действительно хочу делать почти каждый раз, когда обновляю схему.

Следующий код (на основе Обработка значений по умолчанию)С LINQ to SQL ):

namespace Project.Data
{
    public partial class ProjectDataContext
    {
        partial void OnCreated()
        {
            if (this.DateCreated == null)
            {
                this.DateCreated = DateTime.UtcNow;
            }
        }
    }
}

не компилируется (ошибки с ... does not contain a definition for 'DateCreated' ...).Я действительно видел без причины это должно скомпилироваться ... но я все равно попробовал.Может быть, я просто не понимаю контекст кода из его примера.

1 Ответ

0 голосов
/ 12 октября 2010
this.DateCreated ?? DateTime.UtcNow

?? означает, что если левая сторона равна нулю, тогда используйте правую сторону

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