Значения по умолчанию для LINQ to SQL

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

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

Требования: Он должен быть таким же «легким» для генерации, как linq-to-sql или sqlmetal.


Пояснение того, что Мне нужен он для:

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

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

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

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

не компилируется (ошибки с ... не содержат определения для 'DateCreated' ... ). Я действительно не видел причин , что он должен компилироваться ... но я все равно попробовал. Возможно, я просто не понимаю контекст кода из его примера.

6
задан David Murdoch 5 October 2010 в 21:51
поделиться