[Mono-list] SqlMetal custom DataContext name
    Jonathan Pryor 
    jonpryor at vt.edu
       
    Tue Dec  7 11:33:59 EST 2010
    
    
  
On Dec 7, 2010, at 6:00 AM, Daniel Hughes wrote:
> By default the generated DataContext class name is Main.
> 
> This causes problems for obvious reasons (really, I couldn't think of
> a default more likely to conflict)
What obvious reasons? Type names don't conflict with method names (unless the method is in the same type, and I doubt you're going to make the Main type your program entrypoint).
That said, the '-d DATABASE' option is also used to generate the DataContext type.  For example, if importing a SQLite database:
	sqlmetal -d MyDb -provider:Sqlite /c "Data Source=foo.db3" /code:Foo.cs
The DataContext subclass is named 'MyDb' instead of the type 'Main'.
An alternate approach is to use /dbml to generate a .dbml file, then you can edit the .dbml file and re-generate the source:
	$ sqlmetal -provider:Sqlite /c "Data Source=foo.db3" /dbml:Foo.dbml
	# edit Foo.dbml, changing the /Database/@Class attribute value
	$ sqlmetal /code:Foo2.cs Foo.dbml
Unfortunately, this appears to require mono/master to work; using mono 2.8.1's sqlmetal results in a NRE.
 - Jon
    
    
More information about the Mono-list
mailing list