Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | When BinaryGUID handling is off, transform the LINQ paramter types as well. Fix for [a4d9c7ee94]. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
87b424412993197000b560c7414901a9 |
User & Date: | mistachkin 2015-03-26 21:55:51.423 |
Context
2015-03-26
| ||
22:04 | Fix typo in version history docs. check-in: 7f9d345fd9 user: mistachkin tags: trunk | |
21:55 | When BinaryGUID handling is off, transform the LINQ paramter types as well. Fix for [a4d9c7ee94]. check-in: 87b4244129 user: mistachkin tags: trunk | |
20:38 | When creating a parameter associated with a specific command, keep track of that command. check-in: 64d7e6903e user: mistachkin tags: trunk | |
Changes
Changes to Doc/Extra/Provider/version.html.
︙ | ︙ | |||
42 43 44 45 46 47 48 49 50 51 52 53 54 55 | </div> <div id="mainSection"> <div id="mainBody"> <h1 class="heading">Version History</h1> <p><b>1.0.97.0 - May XX, 2015 <font color="red">(release scheduled)</font></b></p> <ul> <li>Updated to <a href="https://www.nuget.org/packages/EntityFramework/6.1.3">Entity Framework 6.1.3</a>.</li> </ul> <p><b>1.0.96.0 - March 5, 2015</b></p> <ul> <li>Prevent the IDataReader.GetOrdinal method from throwing "No current row" exceptions. Fix for <a href="https://system.data.sqlite.org/index.html/info/2be4298631">[2be4298631]</a>, <a href="https://system.data.sqlite.org/index.html/info/abad7c577d">[abad7c577d]</a>, and <a href="https://system.data.sqlite.org/index.html/info/c28d7fe915">[c28d7fe915]</a>.</li> <li>When counting the number of tables in the GetSchemaTable method, do not include those that have a null or empty name. Fix for <a href="https://system.data.sqlite.org/index.html/info/92dbf1229a">[92dbf1229a]</a>.</li> </ul> <p><b>1.0.95.0 - March 2, 2015</b></p> | > | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | </div> <div id="mainSection"> <div id="mainBody"> <h1 class="heading">Version History</h1> <p><b>1.0.97.0 - May XX, 2015 <font color="red">(release scheduled)</font></b></p> <ul> <li>Updated to <a href="https://www.nuget.org/packages/EntityFramework/6.1.3">Entity Framework 6.1.3</a>.</li> <li>When BinaryGUID handling is off, transform the LINQ paramter types as well. Fix for <a href="https://system.data.sqlite.org/index.html/info/a4d9c7ee94">[a4d9c7ee94]</a>. <b>** Potentially Incompatible Change **</b></li> </ul> <p><b>1.0.96.0 - March 5, 2015</b></p> <ul> <li>Prevent the IDataReader.GetOrdinal method from throwing "No current row" exceptions. Fix for <a href="https://system.data.sqlite.org/index.html/info/2be4298631">[2be4298631]</a>, <a href="https://system.data.sqlite.org/index.html/info/abad7c577d">[abad7c577d]</a>, and <a href="https://system.data.sqlite.org/index.html/info/c28d7fe915">[c28d7fe915]</a>.</li> <li>When counting the number of tables in the GetSchemaTable method, do not include those that have a null or empty name. Fix for <a href="https://system.data.sqlite.org/index.html/info/92dbf1229a">[92dbf1229a]</a>.</li> </ul> <p><b>1.0.95.0 - March 2, 2015</b></p> |
︙ | ︙ |
Changes to System.Data.SQLite.Linq/SQLiteProviderServices.cs.
︙ | ︙ | |||
68 69 70 71 72 73 74 | SQLiteParameter parameter; // Use the corresponding function parameter TypeUsage where available (currently, the SSDL facets and // type trump user-defined facets and type in the EntityCommand). FunctionParameter functionParameter; if (null != function && function.Parameters.TryGetValue(queryParameter.Key, false, out functionParameter)) { | | | | 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | SQLiteParameter parameter; // Use the corresponding function parameter TypeUsage where available (currently, the SSDL facets and // type trump user-defined facets and type in the EntityCommand). FunctionParameter functionParameter; if (null != function && function.Parameters.TryGetValue(queryParameter.Key, false, out functionParameter)) { parameter = CreateSqlParameter((SQLiteProviderManifest)manifest, functionParameter.Name, functionParameter.TypeUsage, functionParameter.Mode, DBNull.Value); } else { parameter = CreateSqlParameter((SQLiteProviderManifest)manifest, queryParameter.Key, queryParameter.Value, ParameterMode.In, DBNull.Value); } command.Parameters.Add(parameter); } // Now add parameters added as part of SQL gen (note: this feature is only safe for DML SQL gen which // does not support user parameters, where there is no risk of name collision) |
︙ | ︙ | |||
123 124 125 126 127 128 129 | { return new SQLiteProviderManifest(versionHint); } /// <summary> /// Creates a SQLiteParameter given a name, type, and direction /// </summary> | | > > > > > > > > > > > > | 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | { return new SQLiteProviderManifest(versionHint); } /// <summary> /// Creates a SQLiteParameter given a name, type, and direction /// </summary> internal static SQLiteParameter CreateSqlParameter(SQLiteProviderManifest manifest, string name, TypeUsage type, ParameterMode mode, object value) { int? size; // // NOTE: Adjust the parameter type so that it will work with textual // GUIDs. Please see ticket [a4d9c7ee94] for more details. // if ((manifest != null) && !manifest._binaryGuid && (MetadataHelpers.GetPrimitiveTypeKind(type) == PrimitiveTypeKind.Guid)) { type = TypeUsage.CreateStringTypeUsage( PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String), false, true); } SQLiteParameter result = new SQLiteParameter(name, value); // .Direction ParameterDirection direction = MetadataHelpers.ParameterModeToParameterDirection(mode); if (result.Direction != direction) { |
︙ | ︙ |
Added Tests/tkt-a4d9c7ee94.eagle.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | ############################################################################### # # tkt-a4d9c7ee94.eagle -- # # Written by Joe Mistachkin. # Released to the public domain, use at your own risk! # ############################################################################### package require Eagle package require Eagle.Library package require Eagle.Test runTestPrologue ############################################################################### package require System.Data.SQLite.Test runSQLiteTestPrologue runSQLiteTestFilesPrologue ############################################################################### runTest {test tkt-a4d9c7ee94-1.1 {LINQ w/BinaryGUID=false} -body { # # NOTE: Re-copy the reference database file used for this unit test to the # build directory in case it has been changed by a previous test run. # file copy -force $northwindEfDbFile \ [file join [getBuildDirectory] [file tail $northwindEfDbFile]] set result [list] set output "" set code [catch { testClrExec $testLinqExeFile [list -eventflags Wait -directory \ [file dirname $testLinqExeFile] -nocarriagereturns -stdout output \ -success 0] -binaryguid2 false } error] tlog "---- BEGIN STDOUT OUTPUT\n" tlog $output tlog "\n---- END STDOUT OUTPUT\n" lappend result $code if {$code == 0} then { lappend result [string trim $output] } else { lappend result [string trim $error] } set result } -cleanup { unset -nocomplain code output error result } -constraints {eagle monoToDo SQLite file_System.Data.SQLite.dll testExec\ file_System.Data.SQLite.Linq.dll file_testlinq.exe file_northwindEF.db} \ -constraintExpression {[haveConstraint buildFramework.netFx40] || \ [haveConstraint buildFramework.netFx45] || \ [haveConstraint buildFramework.netFx451]} \ -result {0 {1581 1730 1833 2116 2139 2184 2903 3049 3801 6897 7960 8837 10019\ 10038 11747 14450 19428 19713 20852 27403 27511 29202 30346 31406 32859 33607\ 40222 44122 45839 48075 48084 48304 53404 55113 55439 60179 60601 72716 75234\ 78759 80202 80909 85014 85251 90405 94025 94105 95008 95054 95060 98004 98052\ 98104}}} ############################################################################### runTest {test tkt-a4d9c7ee94-1.2 {LINQ w/BinaryGUID=true} -body { # # NOTE: Re-copy the reference database file used for this unit test to the # build directory in case it has been changed by a previous test run. # file copy -force $northwindEfDbFile \ [file join [getBuildDirectory] [file tail $northwindEfDbFile]] set result [list] set output "" set code [catch { testClrExec $testLinqExeFile [list -eventflags Wait -directory \ [file dirname $testLinqExeFile] -nocarriagereturns -stdout output \ -success 0] -binaryguid2 true } error] tlog "---- BEGIN STDOUT OUTPUT\n" tlog $output tlog "\n---- END STDOUT OUTPUT\n" lappend result $code if {$code == 0} then { lappend result [string trim $output] } else { lappend result [string trim $error] } set result } -cleanup { unset -nocomplain code output error result } -constraints {eagle monoToDo SQLite file_System.Data.SQLite.dll testExec\ file_System.Data.SQLite.Linq.dll file_testlinq.exe file_northwindEF.db} \ -constraintExpression {[haveConstraint buildFramework.netFx40] || \ [haveConstraint buildFramework.netFx45] || \ [haveConstraint buildFramework.netFx451]} \ -result {0 {1581 1730 1833 2116 2139 2184 2903 3049 3801 6897 7960 8837 10019\ 10038 11747 14450 19428 19713 20852 27403 27511 29202 30346 31406 32859 33607\ 40222 44122 45839 48075 48084 48304 53404 55113 55439 60179 60601 72716 75234\ 78759 80202 80909 85014 85251 90405 94025 94105 95008 95054 95060 98004 98052\ 98104}}} ############################################################################### runSQLiteTestFilesEpilogue runSQLiteTestEpilogue runTestEpilogue |
Changes to readme.htm.
︙ | ︙ | |||
209 210 211 212 213 214 215 216 217 218 219 220 221 222 | <h2><b>Version History</b></h2> <p> <b>1.0.97.0 - May XX, 2015 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Updated to <a href="https://www.nuget.org/packages/EntityFramework/6.1.3">Entity Framework 6.1.3</a>.</li> </ul> <p> <b>1.0.96.0 - March 5, 2015</b> </p> <ul> <li>Prevent the IDataReader.GetOrdinal method from throwing "No current row" exceptions. Fix for [c28d7fe915].</li> <li>When counting the number of tables in the GetSchemaTable method, do not include those that have a null or empty name. Fix for [92dbf1229a].</li> | > | 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 | <h2><b>Version History</b></h2> <p> <b>1.0.97.0 - May XX, 2015 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Updated to <a href="https://www.nuget.org/packages/EntityFramework/6.1.3">Entity Framework 6.1.3</a>.</li> <li>When BinaryGUID handling is off, transform the LINQ paramter types as well. Fix for [a4d9c7ee94]. <b>** Potentially Incompatible Change **</b></li> </ul> <p> <b>1.0.96.0 - March 5, 2015</b> </p> <ul> <li>Prevent the IDataReader.GetOrdinal method from throwing "No current row" exceptions. Fix for [c28d7fe915].</li> <li>When counting the number of tables in the GetSchemaTable method, do not include those that have a null or empty name. Fix for [92dbf1229a].</li> |
︙ | ︙ |
Changes to testlinq/Program.cs.
︙ | ︙ | |||
158 159 160 161 162 163 164 165 166 167 168 169 170 171 | return 1; } } return BinaryGuidTest(value); } default: { Console.WriteLine("unknown test \"{0}\"", arg); return 1; } } } | > > > > > > > > > > > > > > > > > > | 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 | return 1; } } return BinaryGuidTest(value); } case "binaryguid2": { bool value = false; if (args.Length > 1) { if (!bool.TryParse(args[1], out value)) { Console.WriteLine( "cannot parse \"{0}\" as boolean", args[1]); return 1; } } return BinaryGuidTest2(value); } default: { Console.WriteLine("unknown test \"{0}\"", arg); return 1; } } } |
︙ | ︙ | |||
578 579 580 581 582 583 584 585 586 587 588 589 590 591 | Environment.SetEnvironmentVariable( "AppendManifestToken_SQLiteProviderManifest", null); return 0; } private static int DateTimeTest() { using (northwindEFEntities db = new northwindEFEntities()) { DateTime dateTime = new DateTime(1997, 1, 1, 0, 0, 0, DateTimeKind.Local); int c1 = db.Orders.Where(i => i.OrderDate == new DateTime(1997, 1, 1, 0, 0, 0, DateTimeKind.Local)).Count(); | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 | Environment.SetEnvironmentVariable( "AppendManifestToken_SQLiteProviderManifest", null); return 0; } #if NET_40 || NET_45 || NET_451 // // NOTE: Used to test the BinaryGUID connection string property with // the Contains() function (ticket [a4d9c7ee94]). We cannot // use the Contains extension method within a LINQ query with // the .NET Framework 3.5. // private static int BinaryGuidTest2(bool binaryGuid) { Environment.SetEnvironmentVariable( "AppendManifestToken_SQLiteProviderManifest", String.Format(";BinaryGUID={0};", binaryGuid)); using (northwindEFEntities db = new northwindEFEntities()) { Guid guid = new Guid("2d3d2d3d-2d3d-2d3d-2d3d-2d3d2d3d2d3d"); Guid[] guids = new Guid[] { guid }; bool once = false; var query = from t in db.Territories where guids.AsQueryable<Guid>().Contains<Guid>(guid) orderby t.TerritoryID select t; foreach (Territories t in query) { if (once) Console.Write(' '); Console.Write(t.TerritoryID); once = true; } } Environment.SetEnvironmentVariable( "AppendManifestToken_SQLiteProviderManifest", null); return 0; } #endif private static int DateTimeTest() { using (northwindEFEntities db = new northwindEFEntities()) { DateTime dateTime = new DateTime(1997, 1, 1, 0, 0, 0, DateTimeKind.Local); int c1 = db.Orders.Where(i => i.OrderDate == new DateTime(1997, 1, 1, 0, 0, 0, DateTimeKind.Local)).Count(); |
︙ | ︙ |
Changes to www/news.wiki.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <title>News</title> <b>Version History</b> <p> <b>1.0.97.0 - May XX, 2015 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Updated to [https://www.nuget.org/packages/EntityFramework/6.1.3|Entity Framework 6.1.3].</li> </ul> <p> <b>1.0.96.0 - March 5, 2015</b> </p> <ul> <li>Prevent the IDataReader.GetOrdinal method from throwing "No current row" exceptions. Fix for [c28d7fe915].</li> <li>When counting the number of tables in the GetSchemaTable method, do not include those that have a null or empty name. Fix for [92dbf1229a].</li> | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <title>News</title> <b>Version History</b> <p> <b>1.0.97.0 - May XX, 2015 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Updated to [https://www.nuget.org/packages/EntityFramework/6.1.3|Entity Framework 6.1.3].</li> <li>When BinaryGUID handling is off, transform the LINQ paramter types as well. Fix for [a4d9c7ee94]. <b>** Potentially Incompatible Change **</b></li> </ul> <p> <b>1.0.96.0 - March 5, 2015</b> </p> <ul> <li>Prevent the IDataReader.GetOrdinal method from throwing "No current row" exceptions. Fix for [c28d7fe915].</li> <li>When counting the number of tables in the GetSchemaTable method, do not include those that have a null or empty name. Fix for [92dbf1229a].</li> |
︙ | ︙ |