Skip to content
This repository was archived by the owner on Feb 1, 2025. It is now read-only.

Commit 925055c

Browse files
authored
Merge pull request #115 from linq2db/master
Release 5.1.5
2 parents 4ca3158 + a4d1b31 commit 925055c

20 files changed

+676
-3
lines changed

Build/linq2db.Default.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project>
22
<PropertyGroup>
3-
<Version>5.1.4</Version>
3+
<Version>5.1.5</Version>
44

55
<Authors>Svyatoslav Danyliv, Igor Tkachev, Dmitry Lukashenko, Ilya Chudin</Authors>
66
<Product>Linq to DB</Product>

Source/LinqToDB.EntityFrameworkCore/EFCoreMetadataReader.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,11 @@ public T[] GetAttributes<T>(Type type, MemberInfo memberInfo, bool inherit = tru
160160
var isIdentity = prop.GetAnnotations()
161161
.Any(a => a.Name.EndsWith(":ValueGenerationStrategy") && a.Value?.ToString() == "IdentityColumn");
162162

163+
if (!isIdentity && isPrimaryKey)
164+
{
165+
isIdentity = prop.ValueGenerated == ValueGenerated.OnAdd;
166+
}
167+
163168
var storeObjectId = GetStoreObjectIdentifier(et);
164169

165170
return new T[]{(T)(Attribute) new ColumnAttribute
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<Import Project="..\..\Build\linq2db.Tests.props" />
4+
5+
<ItemGroup>
6+
<Compile Remove="Models\UniversalEntities\**" />
7+
<EmbeddedResource Remove="Models\UniversalEntities\**" />
8+
<None Remove="Models\UniversalEntities\**" />
9+
</ItemGroup>
10+
11+
<ItemGroup>
12+
<ProjectReference Include="..\..\Source\LinqToDB.EntityFrameworkCore\linq2db.EntityFrameworkCore.csproj" />
13+
<ProjectReference Include="..\LinqToDB.EntityFrameworkCore.BaseTests\LinqToDB.EntityFrameworkCore.BaseTests.csproj" />
14+
</ItemGroup>
15+
16+
<ItemGroup>
17+
<Folder Include="Models\" />
18+
</ItemGroup>
19+
20+
<ItemGroup>
21+
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.3" />
22+
</ItemGroup>
23+
24+
</Project>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using LinqToDB.EntityFrameworkCore.BaseTests.Models.Northwind;
2+
using Microsoft.EntityFrameworkCore;
3+
using Microsoft.EntityFrameworkCore.Metadata.Builders;
4+
5+
namespace LinqToDB.EntityFrameworkCore.SQLite.Tests.Models.Northwind.Mapping
6+
{
7+
public class CategoriesMap : IEntityTypeConfiguration<Category>
8+
{
9+
public void Configure(EntityTypeBuilder<Category> builder)
10+
{
11+
12+
builder.HasKey(e => e.CategoryId);
13+
14+
builder.HasIndex(e => e.CategoryName)
15+
.HasDatabaseName("CategoryName");
16+
17+
builder.Property(e => e.CategoryId).HasColumnName("CategoryID")
18+
/*.ValueGeneratedNever()*/;
19+
20+
builder.Property(e => e.CategoryName)
21+
.IsRequired()
22+
.HasMaxLength(15);
23+
24+
builder.Property(e => e.Description).HasColumnType("text");
25+
26+
builder.Property(e => e.Picture).HasColumnType("blob");
27+
}
28+
}
29+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using LinqToDB.EntityFrameworkCore.BaseTests.Models.Northwind;
2+
using Microsoft.EntityFrameworkCore;
3+
using Microsoft.EntityFrameworkCore.Metadata.Builders;
4+
5+
namespace LinqToDB.EntityFrameworkCore.SQLite.Tests.Models.Northwind.Mapping
6+
{
7+
public class CustomerCustomerDemoMap : IEntityTypeConfiguration<CustomerCustomerDemo>
8+
{
9+
public void Configure(EntityTypeBuilder<CustomerCustomerDemo> builder)
10+
{
11+
12+
builder.HasKey(e => new { e.CustomerId, e.CustomerTypeId });
13+
14+
builder.Property(e => e.CustomerId)
15+
.HasColumnName("CustomerID")
16+
.HasMaxLength(5);
17+
18+
builder.Property(e => e.CustomerTypeId)
19+
.HasColumnName("CustomerTypeID")
20+
.HasMaxLength(10);
21+
22+
builder.HasOne(d => d.Customer)
23+
.WithMany(p => p.CustomerCustomerDemo)
24+
.HasForeignKey(d => d.CustomerId)
25+
.OnDelete(DeleteBehavior.ClientSetNull)
26+
.HasConstraintName("FK_CustomerCustomerDemo_Customers");
27+
28+
builder.HasOne(d => d.CustomerType)
29+
.WithMany(p => p.CustomerCustomerDemo)
30+
.HasForeignKey(d => d.CustomerTypeId)
31+
.OnDelete(DeleteBehavior.ClientSetNull)
32+
.HasConstraintName("FK_CustomerCustomerDemo");
33+
34+
}
35+
}
36+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using LinqToDB.EntityFrameworkCore.BaseTests.Models.Northwind;
2+
using Microsoft.EntityFrameworkCore;
3+
using Microsoft.EntityFrameworkCore.Metadata.Builders;
4+
5+
namespace LinqToDB.EntityFrameworkCore.SQLite.Tests.Models.Northwind.Mapping
6+
{
7+
public class CustomerDemographicsMap : IEntityTypeConfiguration<CustomerDemographics>
8+
{
9+
public void Configure(EntityTypeBuilder<CustomerDemographics> builder)
10+
{
11+
builder.HasKey(e => e.CustomerTypeId);
12+
13+
builder.Property(e => e.CustomerTypeId)
14+
.HasColumnName("CustomerTypeID")
15+
.HasMaxLength(10)
16+
.ValueGeneratedNever();
17+
18+
builder.Property(e => e.CustomerDesc).HasColumnType("text");
19+
}
20+
}
21+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
using LinqToDB.EntityFrameworkCore.BaseTests.Models.Northwind;
2+
using Microsoft.EntityFrameworkCore;
3+
using Microsoft.EntityFrameworkCore.Metadata.Builders;
4+
5+
namespace LinqToDB.EntityFrameworkCore.SqlServer.Tests.Models.Northwind.Mapping
6+
{
7+
public class CustomersMap : IEntityTypeConfiguration<Customer>
8+
{
9+
public void Configure(EntityTypeBuilder<Customer> builder)
10+
{
11+
12+
builder.HasKey(e => e.CustomerId);
13+
14+
builder.HasIndex(e => e.City)
15+
.HasDatabaseName("City");
16+
17+
builder.HasIndex(e => e.CompanyName)
18+
.HasDatabaseName("Customer_CompanyName");
19+
20+
builder.HasIndex(e => e.PostalCode)
21+
.HasDatabaseName("Customer_Postal_ode");
22+
23+
builder.HasIndex(e => e.Region)
24+
.HasDatabaseName("Customer_Region");
25+
26+
builder.Property(e => e.CustomerId)
27+
.HasColumnName("CustomerID")
28+
.HasMaxLength(5)
29+
.ValueGeneratedNever();
30+
31+
builder.Property(e => e.Address).HasMaxLength(60);
32+
builder.Property(e => e.City).HasMaxLength(15);
33+
builder.Property(e => e.CompanyName)
34+
.IsRequired()
35+
.HasMaxLength(40);
36+
37+
builder.Property(e => e.ContactName).HasMaxLength(30);
38+
builder.Property(e => e.ContactTitle).HasMaxLength(30);
39+
builder.Property(e => e.Country).HasMaxLength(15);
40+
builder.Property(e => e.Fax).HasMaxLength(24);
41+
builder.Property(e => e.Phone).HasMaxLength(24);
42+
builder.Property(e => e.PostalCode).HasMaxLength(10);
43+
builder.Property(e => e.Region).HasMaxLength(15);
44+
45+
}
46+
}
47+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using LinqToDB.EntityFrameworkCore.BaseTests.Models.Northwind;
2+
using Microsoft.EntityFrameworkCore;
3+
using Microsoft.EntityFrameworkCore.Metadata.Builders;
4+
5+
namespace LinqToDB.EntityFrameworkCore.SQLite.Tests.Models.Northwind.Mapping
6+
{
7+
public class EmployeeTerritoriesMap : IEntityTypeConfiguration<EmployeeTerritory>
8+
{
9+
public void Configure(EntityTypeBuilder<EmployeeTerritory> builder)
10+
{
11+
builder.HasKey(e => new { e.EmployeeId, e.TerritoryId });
12+
13+
builder.Property(e => e.EmployeeId).HasColumnName("EmployeeID");
14+
15+
builder.Property(e => e.TerritoryId)
16+
.HasColumnName("TerritoryID")
17+
.HasMaxLength(20);
18+
19+
builder.HasOne(d => d.Employee)
20+
.WithMany(p => p.EmployeeTerritories)
21+
.HasForeignKey(d => d.EmployeeId)
22+
.OnDelete(DeleteBehavior.ClientSetNull)
23+
.HasConstraintName("FK_EmployeeTerritories_Employees");
24+
25+
builder.HasOne(d => d.Territory)
26+
.WithMany(p => p.EmployeeTerritories)
27+
.HasForeignKey(d => d.TerritoryId)
28+
.OnDelete(DeleteBehavior.ClientSetNull)
29+
.HasConstraintName("FK_EmployeeTerritories_Territories");
30+
}
31+
}
32+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
using LinqToDB.EntityFrameworkCore.BaseTests.Models.Northwind;
2+
using Microsoft.EntityFrameworkCore;
3+
using Microsoft.EntityFrameworkCore.Metadata.Builders;
4+
5+
namespace LinqToDB.EntityFrameworkCore.SQLite.Tests.Models.Northwind.Mapping
6+
{
7+
public class EmployeesMap : IEntityTypeConfiguration<Employee>
8+
{
9+
public void Configure(EntityTypeBuilder<Employee> builder)
10+
{
11+
builder.HasKey(e => e.EmployeeId);
12+
13+
builder.HasIndex(e => e.LastName)
14+
.HasDatabaseName("Employee_LastName");
15+
16+
builder.HasIndex(e => e.PostalCode)
17+
.HasDatabaseName("Employee_PostalCode");
18+
19+
builder.Property(e => e.EmployeeId).HasColumnName("EmployeeID")
20+
.ValueGeneratedNever();
21+
22+
builder.Property(e => e.Address).HasMaxLength(60);
23+
24+
builder.Property(e => e.BirthDate).HasColumnType("datetime");
25+
26+
builder.Property(e => e.City).HasMaxLength(15);
27+
28+
builder.Property(e => e.Country).HasMaxLength(15);
29+
30+
builder.Property(e => e.Extension).HasMaxLength(4);
31+
32+
builder.Property(e => e.FirstName)
33+
.IsRequired()
34+
.HasMaxLength(10);
35+
36+
builder.Property(e => e.HireDate).HasColumnType("datetime");
37+
38+
builder.Property(e => e.HomePhone).HasMaxLength(24);
39+
40+
builder.Property(e => e.LastName)
41+
.IsRequired()
42+
.HasMaxLength(20);
43+
44+
builder.Property(e => e.Notes).HasColumnType("text");
45+
46+
builder.Property(e => e.Photo).HasColumnType("blob");
47+
48+
builder.Property(e => e.PhotoPath).HasMaxLength(255);
49+
50+
builder.Property(e => e.PostalCode).HasMaxLength(10);
51+
52+
builder.Property(e => e.Region).HasMaxLength(15);
53+
54+
builder.Property(e => e.Title).HasMaxLength(30);
55+
56+
builder.Property(e => e.TitleOfCourtesy).HasMaxLength(25);
57+
58+
builder.HasOne(d => d.ReportsToNavigation)
59+
.WithMany(p => p!.InverseReportsToNavigation)
60+
.HasForeignKey(d => d.ReportsTo)
61+
.HasConstraintName("FK_Employees_Employees");
62+
}
63+
}
64+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
using LinqToDB.EntityFrameworkCore.BaseTests.Models.Northwind;
2+
using Microsoft.EntityFrameworkCore;
3+
using Microsoft.EntityFrameworkCore.Metadata.Builders;
4+
5+
namespace LinqToDB.EntityFrameworkCore.SQLite.Tests.Models.Northwind.Mapping
6+
{
7+
public class OrderDetailsMap : IEntityTypeConfiguration<OrderDetail>
8+
{
9+
public void Configure(EntityTypeBuilder<OrderDetail> builder)
10+
{
11+
builder.HasKey(e => new { e.OrderId, e.ProductId });
12+
13+
builder.ToTable("Order Details");
14+
15+
builder.HasIndex(e => e.OrderId)
16+
.HasDatabaseName("OrdersOrder_Details");
17+
18+
builder.HasIndex(e => e.ProductId)
19+
.HasDatabaseName("ProductsOrder_Details");
20+
21+
builder.Property(e => e.OrderId).HasColumnName("OrderID");
22+
23+
builder.Property(e => e.ProductId).HasColumnName("ProductID");
24+
25+
builder.Property(e => e.Quantity).HasDefaultValue(1);
26+
27+
builder.Property(e => e.UnitPrice).HasColumnType("decimal(13, 4)");
28+
29+
builder.HasOne(d => d.Order)
30+
.WithMany(p => p.OrderDetails)
31+
.HasForeignKey(d => d.OrderId)
32+
.OnDelete(DeleteBehavior.ClientSetNull)
33+
.HasConstraintName("FK_Order_Details_Orders");
34+
35+
builder.HasOne(d => d.Product)
36+
.WithMany(p => p.OrderDetails)
37+
.HasForeignKey(d => d.ProductId)
38+
.OnDelete(DeleteBehavior.ClientSetNull)
39+
.HasConstraintName("FK_Order_Details_Products");
40+
}
41+
}
42+
}

0 commit comments

Comments
 (0)