using DbLinq.Util;\r
using Type = System.Type;\r
\r
+#if MONO_STRICT\r
+using System.Data.Linq;\r
+#endif\r
+\r
namespace DbMetal.Generator.Implementation.CodeTextGenerator\r
{\r
- public abstract partial class CodeGenerator : ICodeGenerator\r
+#if !MONO_STRICT\r
+ public\r
+#endif\r
+ abstract partial class CodeGenerator : ICodeGenerator\r
{\r
public abstract string LanguageCode { get; }\r
public abstract string Extension { get; }\r
? dbSchema.ContextNamespace\r
: context.Parameters.Namespace;\r
context["database"] = dbSchema.Name;\r
- context["generationTime"] = DateTime.Now.ToString("u");\r
+ context["generationTime"] = context.Parameters.GenerateTimestamps\r
+ ? DateTime.Now.ToString("u")\r
+ : "[TIMESTAMP]";\r
context["class"] = dbSchema.Class;\r
\r
using (var codeWriter = CreateCodeWriter(textWriter))\r
if (string.IsNullOrEmpty(entityNamespace))\r
entityNamespace = dbSchema.EntityNamespace;\r
\r
+ bool generateDataContext = true;\r
+ var types = context.Parameters.GenerateTypes;\r
+ if (types.Count > 0)\r
+ generateDataContext = types.Contains(dbSchema.Class);\r
+\r
if (contextNamespace == entityNamespace)\r
{\r
using (WriteNamespace(codeWriter, contextNamespace))\r
{\r
- WriteDataContext(codeWriter, dbSchema, context);\r
+ if (generateDataContext)\r
+ WriteDataContext(codeWriter, dbSchema, context);\r
WriteClasses(codeWriter, dbSchema, context);\r
}\r
}\r
else\r
{\r
- using (WriteNamespace(codeWriter, contextNamespace))\r
- WriteDataContext(codeWriter, dbSchema, context);\r
+ if (generateDataContext)\r
+ using (WriteNamespace(codeWriter, contextNamespace))\r
+ WriteDataContext(codeWriter, dbSchema, context);\r
using (WriteNamespace(codeWriter, entityNamespace))\r
WriteClasses(codeWriter, dbSchema, context);\r
}\r
\r
#if MONO_STRICT\r
writer.WriteUsingNamespace("System.Data.Linq");\r
- writer.WriteUsingNamespace("System.Vendor");\r
#else\r
+ writer.WriteLine("#if MONO_STRICT");\r
+ writer.WriteUsingNamespace("System.Data.Linq");\r
+ writer.WriteLine("#else // MONO_STRICT");\r
writer.WriteUsingNamespace("DbLinq.Data.Linq");\r
writer.WriteUsingNamespace("DbLinq.Vendor");\r
+ writer.WriteLine("#endif // MONO_STRICT");\r
#endif\r
\r
// writer.WriteUsingNamespace("System");\r
implementation.WriteHeader(writer, context);\r
\r
// write namespaces for members attributes\r
- foreach (var memberExposedAttribute in context.Parameters.MemberExposedAttributes)\r
- WriteUsingNamespace(writer, GetNamespace(memberExposedAttribute));\r
-\r
- // write namespaces for clases attributes\r
- foreach (var entityExposedAttribute in context.Parameters.EntityExposedAttributes)\r
- WriteUsingNamespace(writer, GetNamespace(entityExposedAttribute));\r
+ foreach (var memberAttribute in context.Parameters.MemberAttributes)\r
+ WriteUsingNamespace(writer, GetNamespace(memberAttribute));\r
\r
writer.WriteLine();\r
}\r
\r
\r
string contextBase = schema.BaseType;\r
- var contextBaseType = TypeLoader.Load(contextBase);\r
- // if we don't specify a base type, use the default\r
- if (string.IsNullOrEmpty(contextBase))\r
- {\r
- contextBaseType = typeof(DataContext);\r
- }\r
+ var contextBaseType = string.IsNullOrEmpty(contextBase)\r
+ ? typeof(DataContext)\r
+ : TypeLoader.Load(contextBase);\r
+\r
// in all cases, get the literal type name from loaded type\r
contextBase = writer.GetLiteralType(contextBaseType);\r
\r
specifications |= GetSpecificationDefinition(schema.Modifier);\r
using (writer.WriteClass(specifications, schema.Class, contextBase))\r
{\r
+ WriteDataContextExtensibilityDeclarations(writer, schema, context);\r
WriteDataContextCtors(writer, schema, contextBaseType, context);\r
WriteDataContextTables(writer, schema, context);\r
WriteDataContextProcedures(writer, schema, context);\r