Мы все знаем, что 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' ...
).Я действительно видел без причины это должно скомпилироваться ... но я все равно попробовал.Может быть, я просто не понимаю контекст кода из его примера.