We all know that Linq to SQL (and SQLmetal/exe) is really a "prototype" quality product (it's missing basic features like schema "refresh" and detection of null columns with default value).
Is there a way to automatically create my .dbml (similar to LINQ to SQL or SQLmetal) AND have it detect NOT NULL
columns that have a default value?
Requirements: It needs to be just as "easy" to generate as linq-to-sql or sqlmetal.
Clarification of what I need it for:
I have many tables with DateCreated
and DateModified
fields as well as some bit
and enum-like (int
) columns with default values; all of which should be and are not null
.
I will need to regenerate ("refresh") the .dbml after making changes to the database...so (re)setting the Auto-Generate (or Auto-Sync) property to True
is not something I really care to be doing nearly every time I update the schema.
The following code (based on Handling Default Values With LINQ to SQL):
namespace Project.Data
{
public partial class ProjectDataContext
{
partial void OnCreated()
{
if (this.DateCreated == null)
{
this.DateCreated = DateTime.UtcNow;
}
}
}
}
doesn't compile (errors with ... does not contain a definition for 'DateCreated' ...
). I really saw no reason it should compile...but I gave it a shot anyway. Maybe I just don't understand the context of the code from his example.