
Property changes on: .
___________________________________________________________________
Modified: svn:ignore
   - *.suo
Releases
*.resharper
TestResults
TestResult.xml
DbLinq.4.0.resharper.user
build
build.dbg

   + *.suo
Releases
*.resharper
TestResults
TestResult.xml
DbLinq.4.0.resharper.user
build
build.dbg
build.dbg.mono


Index: examples/DbLinq.Pgsql.Example/nwind/NorthwindCustom.cs
===================================================================
--- examples/DbLinq.Pgsql.Example/nwind/NorthwindCustom.cs	(revision 1239)
+++ examples/DbLinq.Pgsql.Example/nwind/NorthwindCustom.cs	(working copy)
@@ -15,7 +15,7 @@
         
     partial class Employee
     {
-        [Column(Storage = "_EmployeeID", Name = "EmployeeID", DbType = "serial", IsDbGenerated = true)]
+        [Column(Storage = "_employeeID", Name = "EmployeeID", DbType = "serial", IsDbGenerated = true)]
         public string Identifier
         {
             get { return null; /* this._EmployeeID.ToString();*/ }

Property changes on: src
___________________________________________________________________
Modified: svn:ignore
   - *.resharper
TestResults
*.suo

   + *.resharper
TestResults
*.suo
_ReSharper.DbLinq
*.user


Index: src/DbLinq.PostgreSql/Test/DbLinq.PostgreSql_test.csproj
===================================================================
--- src/DbLinq.PostgreSql/Test/DbLinq.PostgreSql_test.csproj	(revision 1239)
+++ src/DbLinq.PostgreSql/Test/DbLinq.PostgreSql_test.csproj	(working copy)
@@ -30,7 +30,7 @@
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
     <OutputPath>..\..\..\build\</OutputPath>
-    <DefineConstants>TRACE;DEBUG;POSTGRES</DefineConstants>
+    <DefineConstants>TRACE;POSTGRES</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
Index: src/DbLinq/Data/Linq/DataContext.cs
===================================================================
--- src/DbLinq/Data/Linq/DataContext.cs	(revision 1239)
+++ src/DbLinq/Data/Linq/DataContext.cs	(working copy)
@@ -324,7 +324,7 @@
             //This will throw an exception if the table is not found
             if(Mapping.GetTable(tableType) == null)
             {
-                throw new InvalidOperationException("The type '" + tableType.Name + "' is not mapped as a Table.");
+                throw new InvalidOperationException("The type '" + tableType.FullName + "' is not mapped as a Table.");
             }
         }
 
Index: src/DbLinq/Data/Linq/Mapping/AttributedMetaModel.cs
===================================================================
--- src/DbLinq/Data/Linq/Mapping/AttributedMetaModel.cs	(revision 1239)
+++ src/DbLinq/Data/Linq/Mapping/AttributedMetaModel.cs	(working copy)
@@ -204,9 +204,13 @@
 
                 MetaTable metaTable;
                 if (_Tables.TryGetValue(tableType, out metaTable))
-                  yield return metaTable;
+                    yield return metaTable;
                 else
-                  yield return AddTableType(tableType);
+                {
+                    metaTable = AddTableType(tableType);
+                    if (metaTable != null)
+                        yield return metaTable;
+                }
             }
         }
 
Index: src/DbLinq/Data/Linq/Mapping/LambdaMetaAccessor.cs
===================================================================
--- src/DbLinq/Data/Linq/Mapping/LambdaMetaAccessor.cs	(revision 1239)
+++ src/DbLinq/Data/Linq/Mapping/LambdaMetaAccessor.cs	(working copy)
@@ -14,18 +14,28 @@
 		//This will go away with C# 4.0 ActionExpression
 		static Delegate MakeSetter(MemberInfo member, Type memberType, Type declaringType)
 		{
+            if (member == null)
+                throw new ArgumentNullException("member");
+
 			Type delegateType = typeof(Action<,>).MakeGenericType(declaringType, memberType);
 
 			switch (member.MemberType)
 			{
 				case MemberTypes.Property: {
-                    MethodInfo method = ((PropertyInfo)member).GetSetMethod();
+				    var property = (PropertyInfo)member;
+                    MethodInfo method = property.GetSetMethod();
                     if (method != null)
                         return Delegate.CreateDelegate(delegateType, method);
                     var ca = member.GetCustomAttributes(typeof(ColumnAttribute), true)[0] as ColumnAttribute;
                     member = declaringType.GetField(ca.Storage,
                         BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
-                    goto case MemberTypes.Field;
+                    if (member == null)
+                    {
+                        throw new ApplicationException(string.Format("Failed to find field '{0}' on type '{1}', which was"
+                            + "  specified as the Storage field of property '{2}'.", ca.Storage, declaringType.FullName, property.Name));
+                    }
+
+				    goto case MemberTypes.Field;
                 }
 				case MemberTypes.Field:
 					{
Index: src/DbLinq/Data/Linq/Sugar/Implementation/ExpressionDispatcher.Analyzer.cs
===================================================================
--- src/DbLinq/Data/Linq/Sugar/Implementation/ExpressionDispatcher.Analyzer.cs	(revision 1239)
+++ src/DbLinq/Data/Linq/Sugar/Implementation/ExpressionDispatcher.Analyzer.cs	(working copy)
@@ -1496,7 +1496,8 @@
                     return new SpecialExpression(SpecialExpressionType.In, p0, newContext.CurrentSelect.Mutate(new Expression[] { p1 }));
                 }
             }
-            throw Error.BadArgument("S0548: Can't analyze Contains() method");
+            throw Error.BadArgument("S0548: Can't analyze Contains() method on {0} parameter of type {1}",
+                parameters[0].NodeType, parameters[0].Type.FullName);
         }
 
         protected virtual Expression AnalyzeToUpper(IList<Expression> parameters, BuilderContext builderContext)
Index: src/DbLinq/Data/Linq/Sugar/Implementation/ExpressionQualifier.cs
===================================================================
--- src/DbLinq/Data/Linq/Sugar/Implementation/ExpressionQualifier.cs	(revision 1239)
+++ src/DbLinq/Data/Linq/Sugar/Implementation/ExpressionQualifier.cs	(working copy)
@@ -24,6 +24,7 @@
 // 
 #endregion
 
+using System;
 using System.Linq.Expressions;
 using DbLinq.Data.Linq.Sugar;
 using DbLinq.Data.Linq.Sugar.Expressions;
@@ -41,6 +42,9 @@
         /// <returns></returns>
         public ExpressionPrecedence GetPrecedence(Expression expression)
         {
+            if (expression == null)
+                throw new ArgumentNullException("expression");
+
             if (expression is SpecialExpression)
             {
                 var specialNodeType = ((SpecialExpression)expression).SpecialNodeType;
Index: src/DbLinq/Data/Linq/Sugar/Implementation/SqlBuilder.cs
===================================================================
--- src/DbLinq/Data/Linq/Sugar/Implementation/SqlBuilder.cs	(revision 1239)
+++ src/DbLinq/Data/Linq/Sugar/Implementation/SqlBuilder.cs	(working copy)
@@ -164,11 +164,14 @@
             var literalOperands = new List<SqlStatement>();
             foreach (var operand in operands)
             {
-                var operandPrecedence = ExpressionQualifier.GetPrecedence(operand);
-                var literalOperand = BuildExpression(operand, queryContext);
-                if (operandPrecedence > currentPrecedence)
-                    literalOperand = sqlProvider.GetParenthesis(literalOperand);
-                literalOperands.Add(literalOperand);
+                if (operand != null)
+                {
+                    var operandPrecedence = ExpressionQualifier.GetPrecedence(operand);
+                    var literalOperand = BuildExpression(operand, queryContext);
+                    if (operandPrecedence > currentPrecedence)
+                        literalOperand = sqlProvider.GetParenthesis(literalOperand);
+                    literalOperands.Add(literalOperand);
+                }
             }
 
             // then converts expression

Property changes on: src\Tools\TestNamespaceWriter
___________________________________________________________________
Added: svn:ignore
   + bin
obj


