diff --git a/Samples/DataLayer.cs b/Samples/DataLayer.cs index 2554d47..32bc3f3 100644 --- a/Samples/DataLayer.cs +++ b/Samples/DataLayer.cs @@ -48,11 +48,21 @@ public CategoryRepository(DataService DataService) : base(DataService) set { base.DataService = value; } } + public Category Get(string projectionName, System.Int32 categoryId) + { + return ((IRepository)this).Get(projectionName, categoryId, FetchMode.UseIdentityMap); + } + public Category Get(string projectionName, System.Int32 categoryId, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository)this).Get(projectionName, categoryId, fetchMode); } + public Category Get(Projection projection, System.Int32 categoryId) + { + return ((IRepository)this).Get(projection, categoryId, FetchMode.UseIdentityMap); + } + public Category Get(Projection projection, System.Int32 categoryId, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository)this).Get(projection, categoryId, fetchMode); @@ -147,11 +157,21 @@ public CustomerRepository(DataService DataService) : base(DataService) set { base.DataService = value; } } + public Customer Get(string projectionName, System.String customerId) + { + return ((IRepository)this).Get(projectionName, customerId, FetchMode.UseIdentityMap); + } + public Customer Get(string projectionName, System.String customerId, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository)this).Get(projectionName, customerId, fetchMode); } + public Customer Get(Projection projection, System.String customerId) + { + return ((IRepository)this).Get(projection, customerId, FetchMode.UseIdentityMap); + } + public Customer Get(Projection projection, System.String customerId, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository)this).Get(projection, customerId, fetchMode); @@ -281,11 +301,21 @@ public EmployeeRepository(DataService DataService) : base(DataService) set { base.DataService = value; } } + public Employee Get(string projectionName, System.Int32 employeeId) + { + return ((IRepository)this).Get(projectionName, employeeId, FetchMode.UseIdentityMap); + } + public Employee Get(string projectionName, System.Int32 employeeId, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository)this).Get(projectionName, employeeId, fetchMode); } + public Employee Get(Projection projection, System.Int32 employeeId) + { + return ((IRepository)this).Get(projection, employeeId, FetchMode.UseIdentityMap); + } + public Employee Get(Projection projection, System.Int32 employeeId, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository)this).Get(projection, employeeId, fetchMode); @@ -386,11 +416,21 @@ public OrderDetailRepository(DataService DataService) : base(DataService) set { base.DataService = value; } } + public OrderDetail Get(string projectionName, System.Int32 orderDetailId) + { + return ((IRepository)this).Get(projectionName, orderDetailId, FetchMode.UseIdentityMap); + } + public OrderDetail Get(string projectionName, System.Int32 orderDetailId, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository)this).Get(projectionName, orderDetailId, fetchMode); } + public OrderDetail Get(Projection projection, System.Int32 orderDetailId) + { + return ((IRepository)this).Get(projection, orderDetailId, FetchMode.UseIdentityMap); + } + public OrderDetail Get(Projection projection, System.Int32 orderDetailId, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository)this).Get(projection, orderDetailId, fetchMode); @@ -526,11 +566,21 @@ public OrderRepository(DataService DataService) : base(DataService) set { base.DataService = value; } } + public Order Get(string projectionName, System.Int32 orderId) + { + return ((IRepository)this).Get(projectionName, orderId, FetchMode.UseIdentityMap); + } + public Order Get(string projectionName, System.Int32 orderId, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository)this).Get(projectionName, orderId, fetchMode); } + public Order Get(Projection projection, System.Int32 orderId) + { + return ((IRepository)this).Get(projection, orderId, FetchMode.UseIdentityMap); + } + public Order Get(Projection projection, System.Int32 orderId, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository)this).Get(projection, orderId, fetchMode); @@ -645,11 +695,21 @@ public ProductRepository(DataService DataService) : base(DataService) set { base.DataService = value; } } + public Product Get(string projectionName, System.Int32 productId) + { + return ((IRepository)this).Get(projectionName, productId, FetchMode.UseIdentityMap); + } + public Product Get(string projectionName, System.Int32 productId, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository)this).Get(projectionName, productId, fetchMode); } + public Product Get(Projection projection, System.Int32 productId) + { + return ((IRepository)this).Get(projection, productId, FetchMode.UseIdentityMap); + } + public Product Get(Projection projection, System.Int32 productId, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository)this).Get(projection, productId, fetchMode); @@ -731,11 +791,21 @@ public ShipperRepository(DataService DataService) : base(DataService) set { base.DataService = value; } } + public Shipper Get(string projectionName, System.Int32 shipperId) + { + return ((IRepository)this).Get(projectionName, shipperId, FetchMode.UseIdentityMap); + } + public Shipper Get(string projectionName, System.Int32 shipperId, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository)this).Get(projectionName, shipperId, fetchMode); } + public Shipper Get(Projection projection, System.Int32 shipperId) + { + return ((IRepository)this).Get(projection, shipperId, FetchMode.UseIdentityMap); + } + public Shipper Get(Projection projection, System.Int32 shipperId, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository)this).Get(projection, shipperId, fetchMode); @@ -833,11 +903,21 @@ public SupplierRepository(DataService DataService) : base(DataService) set { base.DataService = value; } } + public Supplier Get(string projectionName, System.Int32 supplierId) + { + return ((IRepository)this).Get(projectionName, supplierId, FetchMode.UseIdentityMap); + } + public Supplier Get(string projectionName, System.Int32 supplierId, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository)this).Get(projectionName, supplierId, fetchMode); } + public Supplier Get(Projection projection, System.Int32 supplierId) + { + return ((IRepository)this).Get(projection, supplierId, FetchMode.UseIdentityMap); + } + public Supplier Get(Projection projection, System.Int32 supplierId, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository)this).Get(projection, supplierId, fetchMode); diff --git a/Samples/EntityLite.ttinclude/EntityGeneration.ttinclude b/Samples/EntityLite.ttinclude/EntityGeneration.ttinclude index eb80da6..8c43546 100644 --- a/Samples/EntityLite.ttinclude/EntityGeneration.ttinclude +++ b/Samples/EntityLite.ttinclude/EntityGeneration.ttinclude @@ -199,11 +199,21 @@ void RenderEntityRepositoryClass(DataLayerGeneration generation, EntitySetting e if (primaryKeyField != null) { #> + public <#= entity.EntityName #> Get(string projectionName, <#=primaryKeyField.PropertyType.ToString() #> <#=primaryKeyField.PropertyName.ToParameterName() #>) + { + return ((IRepository<<#= entity.EntityName #>>)this).Get(projectionName, <#=primaryKeyField.PropertyName.ToParameterName() #>, FetchMode.UseIdentityMap); + } + public <#= entity.EntityName #> Get(string projectionName, <#=primaryKeyField.PropertyType.ToString() #> <#=primaryKeyField.PropertyName.ToParameterName() #>, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository<<#= entity.EntityName #>>)this).Get(projectionName, <#=primaryKeyField.PropertyName.ToParameterName() #>, fetchMode); } + public <#= entity.EntityName #> Get(Projection projection, <#=primaryKeyField.PropertyType.ToString() #> <#=primaryKeyField.PropertyName.ToParameterName() #>) + { + return ((IRepository<<#= entity.EntityName #>>)this).Get(projection, <#=primaryKeyField.PropertyName.ToParameterName() #>, FetchMode.UseIdentityMap); + } + public <#= entity.EntityName #> Get(Projection projection, <#=primaryKeyField.PropertyType.ToString() #> <#=primaryKeyField.PropertyName.ToParameterName() #>, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository<<#= entity.EntityName #>>)this).Get(projection, <#=primaryKeyField.PropertyName.ToParameterName() #>, fetchMode); diff --git a/Samples/Northwind.mdf b/Samples/Northwind.mdf index ec2760c..f744243 100644 Binary files a/Samples/Northwind.mdf and b/Samples/Northwind.mdf differ diff --git a/Samples/Northwind_log.ldf b/Samples/Northwind_log.ldf index 344f9f5..b7564ab 100644 Binary files a/Samples/Northwind_log.ldf and b/Samples/Northwind_log.ldf differ diff --git a/Samples/Program.cs b/Samples/Program.cs index 212a098..2b08ba2 100644 --- a/Samples/Program.cs +++ b/Samples/Program.cs @@ -23,14 +23,14 @@ static void Main(string[] args) //TestOracleSeq(); //ToPascalTests(); //RaiseProductPrices(); - //InsertUpdateDeleteProduct(); + InsertUpdateDeleteProduct(); //ShowPagedProducts(); //ShowSomeProducts(); //ShowQuesoCabralesOrders(); //ShowLondonAndewFullerSubtree(); //HandCraftedSql(); //ShowProductSales(); - RaiseProductPrices2(); + //RaiseProductPrices2(); } private static void RaiseProductPrices2() @@ -371,6 +371,8 @@ static void InsertUpdateDeleteProduct() Console.WriteLine("CategoryName:" + p.CategoryName); + p = ds.ProductRepository.Get(Projection.BaseTable, p.ProductId); + ds.ProductRepository.Delete(p.ProductId); ds.Commit(); diff --git a/inercya.EntityLite/AssemblyInfo.cs b/inercya.EntityLite/AssemblyInfo.cs index 509f92b..82a2e28 100644 --- a/inercya.EntityLite/AssemblyInfo.cs +++ b/inercya.EntityLite/AssemblyInfo.cs @@ -29,5 +29,5 @@ // Build Number // Revision // -[assembly: AssemblyVersion("1.0.9.0")] -[assembly: AssemblyFileVersion("1.0.9.0")] +[assembly: AssemblyVersion("1.0.10.0")] +[assembly: AssemblyFileVersion("1.0.10.0")] diff --git a/inercya.EntityLite/Extensions/QueryLiteExtensions.cs b/inercya.EntityLite/Extensions/QueryLiteExtensions.cs index 73fb336..b362c0c 100644 --- a/inercya.EntityLite/Extensions/QueryLiteExtensions.cs +++ b/inercya.EntityLite/Extensions/QueryLiteExtensions.cs @@ -518,6 +518,8 @@ public static object Get(this IQueryLite query, int id) /// public static IQueryLite Fields(this IQueryLite query, FieldsOption options, params string[] fields) { + if (fields == null || fields.Length == 0) return query; + var metadata = typeof(TEntity).GetEntityMetadata(); var invalidField = fields.FirstOrDefault(x => { diff --git a/inercya.EntityLite/Repository.cs b/inercya.EntityLite/Repository.cs index d8dd7af..4369818 100644 --- a/inercya.EntityLite/Repository.cs +++ b/inercya.EntityLite/Repository.cs @@ -19,8 +19,8 @@ public interface IRepository void Delete(object entity); Type EntityType { get; } - object Get(Projection projection, object entityId, FetchMode fetchMode = FetchMode.UseIdentityMap); - object Get(string projectionName, object entityId, FetchMode fetchMode = FetchMode.UseIdentityMap); + object Get(Projection projection, object entityId, FetchMode fetchMode); + object Get(string projectionName, object entityId, FetchMode fetchMode); object Get(Projection projection, object entityId, string[] fields); object Get(string projectionName, object entityId, string[] fields); @@ -36,8 +36,8 @@ public interface IRepository : IRepository new IQueryLite Query(Projection projection); new IQueryLite Query(string projectionName); - new TEntity Get(Projection projection, object entityId, FetchMode fetchMode = FetchMode.UseIdentityMap); - new TEntity Get(string projectionName, object entityId, FetchMode fetchMode = FetchMode.UseIdentityMap); + new TEntity Get(Projection projection, object entityId, FetchMode fetchMode); + new TEntity Get(string projectionName, object entityId, FetchMode fetchMode); new TEntity Get(Projection projection, object entityId, string[] fields); new TEntity Get(string projectionName, object entityId, string[] fields); } diff --git a/nuget/Core/EntityLite.Core.1.0.10-Beta.nupkg b/nuget/Core/EntityLite.Core.1.0.10-Beta.nupkg new file mode 100644 index 0000000..6f43c70 Binary files /dev/null and b/nuget/Core/EntityLite.Core.1.0.10-Beta.nupkg differ diff --git a/nuget/Core/EntityLite.Core.nuspec b/nuget/Core/EntityLite.Core.nuspec index b04db1c..b4b8626 100644 --- a/nuget/Core/EntityLite.Core.nuspec +++ b/nuget/Core/EntityLite.Core.nuspec @@ -2,7 +2,7 @@ EntityLite.Core - 1.0.9-Beta + 1.0.10-Beta i-nercya EntityLite Core Jesús López (i-nercya intelligent software) diff --git a/nuget/Core/Publish.cmd b/nuget/Core/Publish.cmd index 01e72a1..e7889a3 100644 --- a/nuget/Core/Publish.cmd +++ b/nuget/Core/Publish.cmd @@ -1,3 +1,3 @@ %~dp0..\NuGet.exe Update -self -%~dp0..\NuGet.exe Push EntityLite.Core.1.0.9-Beta.nupkg +%~dp0..\NuGet.exe Push EntityLite.Core.1.0.10-Beta.nupkg pause \ No newline at end of file diff --git a/nuget/Generators/EntityLite.1.0.10-Beta.nupkg b/nuget/Generators/EntityLite.1.0.10-Beta.nupkg new file mode 100644 index 0000000..4e8d2bc Binary files /dev/null and b/nuget/Generators/EntityLite.1.0.10-Beta.nupkg differ diff --git a/nuget/Generators/EntityLite.nuspec b/nuget/Generators/EntityLite.nuspec index 694e4c6..8fb9b25 100644 --- a/nuget/Generators/EntityLite.nuspec +++ b/nuget/Generators/EntityLite.nuspec @@ -2,7 +2,7 @@ EntityLite - 1.0.9-Beta + 1.0.10-Beta i-nercya EntityLite Jesús López (i-nercya intelligent software) @@ -22,7 +22,7 @@ Copyright 2013 - + diff --git a/nuget/Generators/Publish.cmd b/nuget/Generators/Publish.cmd index 864ae1c..13e9d53 100644 --- a/nuget/Generators/Publish.cmd +++ b/nuget/Generators/Publish.cmd @@ -1,3 +1,3 @@ %~dp0..\NuGet.exe Update -self -%~dp0..\NuGet.exe Push EntityLite.1.0.9-Beta.nupkg +%~dp0..\NuGet.exe Push EntityLite.1.0.10-Beta.nupkg pause \ No newline at end of file diff --git a/nuget/Generators/content/EntityLite.ttinclude/EntityGeneration.ttinclude b/nuget/Generators/content/EntityLite.ttinclude/EntityGeneration.ttinclude index eb80da6..8c43546 100644 --- a/nuget/Generators/content/EntityLite.ttinclude/EntityGeneration.ttinclude +++ b/nuget/Generators/content/EntityLite.ttinclude/EntityGeneration.ttinclude @@ -199,11 +199,21 @@ void RenderEntityRepositoryClass(DataLayerGeneration generation, EntitySetting e if (primaryKeyField != null) { #> + public <#= entity.EntityName #> Get(string projectionName, <#=primaryKeyField.PropertyType.ToString() #> <#=primaryKeyField.PropertyName.ToParameterName() #>) + { + return ((IRepository<<#= entity.EntityName #>>)this).Get(projectionName, <#=primaryKeyField.PropertyName.ToParameterName() #>, FetchMode.UseIdentityMap); + } + public <#= entity.EntityName #> Get(string projectionName, <#=primaryKeyField.PropertyType.ToString() #> <#=primaryKeyField.PropertyName.ToParameterName() #>, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository<<#= entity.EntityName #>>)this).Get(projectionName, <#=primaryKeyField.PropertyName.ToParameterName() #>, fetchMode); } + public <#= entity.EntityName #> Get(Projection projection, <#=primaryKeyField.PropertyType.ToString() #> <#=primaryKeyField.PropertyName.ToParameterName() #>) + { + return ((IRepository<<#= entity.EntityName #>>)this).Get(projection, <#=primaryKeyField.PropertyName.ToParameterName() #>, FetchMode.UseIdentityMap); + } + public <#= entity.EntityName #> Get(Projection projection, <#=primaryKeyField.PropertyType.ToString() #> <#=primaryKeyField.PropertyName.ToParameterName() #>, FetchMode fetchMode = FetchMode.UseIdentityMap) { return ((IRepository<<#= entity.EntityName #>>)this).Get(projection, <#=primaryKeyField.PropertyName.ToParameterName() #>, fetchMode); diff --git a/nuget/Generators/content/EntityLite.ttinclude/EntityLite.ttinclude b/nuget/Generators/content/EntityLite.ttinclude/EntityLite.ttinclude index 818e515..647deb0 100644 --- a/nuget/Generators/content/EntityLite.ttinclude/EntityLite.ttinclude +++ b/nuget/Generators/content/EntityLite.ttinclude/EntityLite.ttinclude @@ -3,7 +3,7 @@ <#@ assembly name="Microsoft.CSharp" #> <#@ assembly name="System.Data" #> <#@ assembly name="System.Xml" #> -<#@ assembly name="$(SolutionDir)packages\EntityLite.Core.1.0.9-Beta\lib\net35-client\inercya.EntityLite.dll" #> +<#@ assembly name="$(SolutionDir)packages\EntityLite.Core.1.0.10-Beta\lib\net35-client\inercya.EntityLite.dll" #> <#@ import namespace="System" #> <#@ import namespace="System.Reflection" #> <#@ import namespace="System.Data" #>