On Sat, 2010-02-13 at 20:04 -0800, Andres Duque wrote:
> I'm testing and I get different errors if I use SqlMetal or
> DbMetal ... which the difference?

The difference is intent: DbMetal is for use with DbLinq.dll & related
assemblies (e.g. DbLinq.PostgreSql.dll).  SqlMetal is for Mono, to
generate a .NET-compatible 'sqlmetal.exe' tool.

If you're using the DbLinq assemblies, use DbMetal.  If you're using
Mono (and ONLY Mono, NOT .NET), then use SqlMetal.

(In short, if you're using DbLinq's sources, don't use SqlMetal.  The
only reason it exists is to ensure that Mono's SqlMetal tool continues
to build if/when DbLinq's sources change, just as the only reason DbLinq
includes a System.Data.Linq.dllassembly is to ensure that Mono's build
isn't broken if/when DbLinq's sources change.  Just forget that you ever
saw those two assemblies.)

The other major difference is where they find their "SchemaLoader"
types.  Mono's System.Data.Linq.dll includes ~all of DbLinq's vendor
assemblies within the single System.Data.Linq.dll assembly, while DbLinq
keeps them in separate assemblies.  This is most visible when comparing
DbMetal.exe.config to SqlMetal.exe.config -- the former will reference
e.g. "DbLinq.MySql.MySqlSchemaLoader, DbLinq.MySql" while the latter
will reference "DbLinq.MySql.MySqlSchemaLoader, System.Data.Linq" (which
has a snowballs chance in hell of ever working under .NET, as I
*guarantee* that .NET's System.Data.Linq.dll won't have a DbLinq type in
it, which is required when using SqlMetal).

 - Jon


-- 
You received this message because you are subscribed to the Google Groups 
"DbLinq" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/dblinq?hl=en.

Reply via email to