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.
