Skip to content

Commit 0220a01

Browse files
authored
Merge pull request #6 from AutoMapper/development
First release
2 parents 8a445d9 + 1efbcf0 commit 0220a01

File tree

109 files changed

+5291
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+5291
-0
lines changed

.editorconfig

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[*]
2+
end_of_line = crlf
3+
4+
[*.xml]
5+
indent_style = space
6+
7+
[*.cs]
8+
indent_style = space
9+
indent_size = 4

.gitattributes

+63
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
###############################################################################
2+
# Set default behavior to automatically normalize line endings.
3+
###############################################################################
4+
* text=auto
5+
6+
###############################################################################
7+
# Set default behavior for command prompt diff.
8+
#
9+
# This is need for earlier builds of msysgit that does not have it on by
10+
# default for csharp files.
11+
# Note: This is only used by command line
12+
###############################################################################
13+
#*.cs diff=csharp
14+
15+
###############################################################################
16+
# Set the merge driver for project and solution files
17+
#
18+
# Merging from the command prompt will add diff markers to the files if there
19+
# are conflicts (Merging from VS is not affected by the settings below, in VS
20+
# the diff markers are never inserted). Diff markers may cause the following
21+
# file extensions to fail to load in VS. An alternative would be to treat
22+
# these files as binary and thus will always conflict and require user
23+
# intervention with every merge. To do so, just uncomment the entries below
24+
###############################################################################
25+
#*.sln merge=binary
26+
#*.csproj merge=binary
27+
#*.vbproj merge=binary
28+
#*.vcxproj merge=binary
29+
#*.vcproj merge=binary
30+
#*.dbproj merge=binary
31+
#*.fsproj merge=binary
32+
#*.lsproj merge=binary
33+
#*.wixproj merge=binary
34+
#*.modelproj merge=binary
35+
#*.sqlproj merge=binary
36+
#*.wwaproj merge=binary
37+
38+
###############################################################################
39+
# behavior for image files
40+
#
41+
# image files are treated as binary by default.
42+
###############################################################################
43+
#*.jpg binary
44+
#*.png binary
45+
#*.gif binary
46+
47+
###############################################################################
48+
# diff behavior for common document formats
49+
#
50+
# Convert binary document formats to text before diffing them. This feature
51+
# is only available from the command line. Turn it on by uncommenting the
52+
# entries below.
53+
###############################################################################
54+
#*.doc diff=astextplain
55+
#*.DOC diff=astextplain
56+
#*.docx diff=astextplain
57+
#*.DOCX diff=astextplain
58+
#*.dot diff=astextplain
59+
#*.DOT diff=astextplain
60+
#*.pdf diff=astextplain
61+
#*.PDF diff=astextplain
62+
#*.rtf diff=astextplain
63+
#*.RTF diff=astextplain

.gitignore

+195
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
## Ignore Visual Studio temporary files, build results, and
2+
## files generated by popular Visual Studio add-ons.
3+
4+
# User-specific files
5+
*.suo
6+
*.user
7+
*.sln.docstates
8+
9+
# Build results
10+
[Dd]ebug/
11+
[Dd]ebugPublic/
12+
[Rr]elease/
13+
x64/
14+
build/
15+
bld/
16+
[Bb]in/
17+
[Oo]bj/
18+
19+
# Roslyn cache directories
20+
*.ide/
21+
22+
# MSTest test Results
23+
[Tt]est[Rr]esult*/
24+
[Bb]uild[Ll]og.*
25+
26+
#NUNIT
27+
*.VisualState.xml
28+
TestResult.xml
29+
30+
# Build Results of an ATL Project
31+
[Dd]ebugPS/
32+
[Rr]eleasePS/
33+
dlldata.c
34+
35+
*_i.c
36+
*_p.c
37+
*_i.h
38+
*.ilk
39+
*.meta
40+
*.obj
41+
*.pch
42+
*.pdb
43+
*.pgc
44+
*.pgd
45+
*.rsp
46+
*.sbr
47+
*.tlb
48+
*.tli
49+
*.tlh
50+
*.tmp
51+
*.tmp_proj
52+
*.log
53+
*.vspscc
54+
*.vssscc
55+
.builds
56+
*.pidb
57+
*.svclog
58+
*.scc
59+
60+
# Chutzpah Test files
61+
_Chutzpah*
62+
63+
# Visual C++ cache files
64+
ipch/
65+
*.aps
66+
*.ncb
67+
*.opensdf
68+
*.sdf
69+
*.cachefile
70+
71+
# Visual Studio profiler
72+
*.psess
73+
*.vsp
74+
*.vspx
75+
76+
# TFS 2012 Local Workspace
77+
$tf/
78+
79+
# Guidance Automation Toolkit
80+
*.gpState
81+
82+
# ReSharper is a .NET coding add-in
83+
_ReSharper*/
84+
*.[Rr]e[Ss]harper
85+
*.DotSettings.user
86+
87+
# JustCode is a .NET coding addin-in
88+
.JustCode
89+
90+
# TeamCity is a build add-in
91+
_TeamCity*
92+
93+
# DotCover is a Code Coverage Tool
94+
*.dotCover
95+
96+
# NCrunch
97+
_NCrunch_*
98+
.*crunch*.local.xml
99+
100+
# MightyMoose
101+
*.mm.*
102+
AutoTest.Net/
103+
104+
# Web workbench (sass)
105+
.sass-cache/
106+
107+
# Installshield output folder
108+
[Ee]xpress/
109+
110+
# DocProject is a documentation generator add-in
111+
DocProject/buildhelp/
112+
DocProject/Help/*.HxT
113+
DocProject/Help/*.HxC
114+
DocProject/Help/*.hhc
115+
DocProject/Help/*.hhk
116+
DocProject/Help/*.hhp
117+
DocProject/Help/Html2
118+
DocProject/Help/html
119+
120+
# Click-Once directory
121+
publish/
122+
123+
# Publish Web Output
124+
*.[Pp]ublish.xml
125+
*.azurePubxml
126+
## TODO: Comment the next line if you want to checkin your
127+
## web deploy settings but do note that will include unencrypted
128+
## passwords
129+
#*.pubxml
130+
131+
# NuGet Packages Directory
132+
packages/*
133+
## TODO: If the tool you use requires repositories.config
134+
## uncomment the next line
135+
#!packages/repositories.config
136+
137+
# Enable "build/" folder in the NuGet Packages folder since
138+
# NuGet packages use it for MSBuild targets.
139+
# This line needs to be after the ignore of the build folder
140+
# (and the packages folder if the line above has been uncommented)
141+
!packages/build/
142+
143+
# Windows Azure Build Output
144+
csx/
145+
*.build.csdef
146+
147+
# Windows Store app package directory
148+
AppPackages/
149+
150+
# Others
151+
sql/
152+
*.Cache
153+
ClientBin/
154+
[Ss]tyle[Cc]op.*
155+
~$*
156+
*~
157+
*.dbmdl
158+
*.dbproj.schemaview
159+
*.pfx
160+
*.publishsettings
161+
node_modules/
162+
163+
# RIA/Silverlight projects
164+
Generated_Code/
165+
166+
# Backup & report files from converting an old project file
167+
# to a newer Visual Studio version. Backup files are not needed,
168+
# because we have git ;-)
169+
_UpgradeReport_Files/
170+
Backup*/
171+
UpgradeLog*.XML
172+
UpgradeLog*.htm
173+
174+
# SQL Server files
175+
*.mdf
176+
*.ldf
177+
178+
# Business Intelligence projects
179+
*.rdl.data
180+
*.bim.layout
181+
*.bim_*.settings
182+
183+
# Microsoft Fakes
184+
FakesAssemblies/
185+
186+
# LightSwitch generated files
187+
GeneratedArtifacts/
188+
_Pvt_Extensions/
189+
ModelManifest.xml
190+
/packages/
191+
/.vs
192+
*.GhostDoc.xml
193+
/artifacts
194+
*.lock.json
195+
/results

AutoMapper.Collection.EFCore.sln

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio 15
4+
VisualStudioVersion = 15.0.27130.2010
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{578F2483-CF08-409D-A316-31BCB7C5D9D0}"
7+
ProjectSection(SolutionItems) = preProject
8+
.editorconfig = .editorconfig
9+
README.md = README.md
10+
version.props = version.props
11+
EndProjectSection
12+
EndProject
13+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoMapper.Collection.EntityFrameworkCore", "src\AutoMapper.Collection.EntityFrameworkCore\AutoMapper.Collection.EntityFrameworkCore.csproj", "{1FABEDBB-1EEE-401F-A7D3-82C439BD93D4}"
14+
EndProject
15+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoMapper.Collection.EntityFrameworkCore.Tests", "src\AutoMapper.Collection.EntityFrameworkCore.Tests\AutoMapper.Collection.EntityFrameworkCore.Tests.csproj", "{818AC0F5-02E4-4C47-8E03-8AFC59805EDA}"
16+
EndProject
17+
Global
18+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
19+
Debug|Any CPU = Debug|Any CPU
20+
Release|Any CPU = Release|Any CPU
21+
EndGlobalSection
22+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
23+
{1FABEDBB-1EEE-401F-A7D3-82C439BD93D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
24+
{1FABEDBB-1EEE-401F-A7D3-82C439BD93D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
25+
{1FABEDBB-1EEE-401F-A7D3-82C439BD93D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
26+
{1FABEDBB-1EEE-401F-A7D3-82C439BD93D4}.Release|Any CPU.Build.0 = Release|Any CPU
27+
{818AC0F5-02E4-4C47-8E03-8AFC59805EDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
28+
{818AC0F5-02E4-4C47-8E03-8AFC59805EDA}.Debug|Any CPU.Build.0 = Debug|Any CPU
29+
{818AC0F5-02E4-4C47-8E03-8AFC59805EDA}.Release|Any CPU.ActiveCfg = Release|Any CPU
30+
{818AC0F5-02E4-4C47-8E03-8AFC59805EDA}.Release|Any CPU.Build.0 = Release|Any CPU
31+
EndGlobalSection
32+
GlobalSection(SolutionProperties) = preSolution
33+
HideSolutionNode = FALSE
34+
EndGlobalSection
35+
GlobalSection(ExtensibilityGlobals) = postSolution
36+
SolutionGuid = {D5C8CD86-1F3F-4D3A-8A90-5F3726E8F998}
37+
EndGlobalSection
38+
EndGlobal

Directory.Build.props

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<Project>
2+
<Import Project="version.props" />
3+
</Project>

LICENSE LICENSE.txt

File renamed without changes.

NuGet.Config

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<configuration>
3+
<packageSources>
4+
<add key="AutoMapper" value="https://www.myget.org/F/automapperdev/api/v2" />
5+
</packageSources>
6+
</configuration>

README.md

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<img src="https://s3.amazonaws.com/automapper/logo.png" alt="AutoMapper">
2+
3+
AutoMapper.Collection.EFCore
4+
================================
5+
`Automapper.Collection.EntityFrameworkCore` will help you mapping of EntityFrameowrk Core DbContext-object.
6+
7+
Mapper.Initialize(cfg =>
8+
{
9+
cfg.AddCollectionMappers();
10+
cfg.SetGeneratePropertyMaps<GenerateEntityFrameworkCorePrimaryKeyPropertyMaps<DB>>();
11+
// Configuration code
12+
});
13+
14+
User defined equality expressions will overwrite primary key expressions.
15+
16+
What about comparing to a single existing Entity for updating?
17+
--------------------------------
18+
Automapper.Collection.EntityFramework does that as well through extension method from of DbSet<TEntity>.
19+
20+
Translate equality between dto and EF object to an expression of just the EF using the dto's values as constants.
21+
22+
dbContext.Orders.Persist().InsertOrUpdate<OrderDTO>(newOrderDto);
23+
dbContext.Orders.Persist().InsertOrUpdate<OrderDTO>(existingOrderDto);
24+
dbContext.Orders.Persist().Remove<OrderDTO>(deletedOrderDto);
25+
dbContext.SubmitChanges();
26+
27+
**Note:** This is done by converting the OrderDTO to Expression<Func<Order,bool>> and using that to find matching type in the database. You can also map objects to expressions as well.
28+
29+
Persist doesn't call submit changes automatically
30+
31+
How to get it
32+
--------------------------------
33+
Use NuGet Package Manager to install the package or use any of the following command in NuGet Package Manager Console.
34+
35+
PM> Install-Package AutoMapper.Collection.EntityFrameworkCore
36+

appveyor.yml

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
version: '{build}'
2+
pull_requests:
3+
do_not_increment_build_number: true
4+
branches:
5+
only:
6+
- master
7+
- development
8+
image: Visual Studio 2017
9+
nuget:
10+
disable_publish_on_pr: true
11+
build_script:
12+
- cmd: .\build.cmd
13+
test: off
14+
artifacts:
15+
- path: artifacts\*.nupkg
16+
name: NuGet
17+
deploy:
18+
- provider: NuGet
19+
server: https://www.myget.org/F/automapperdev/api/v2/package
20+
api_key:
21+
secure: zKeQZmIv9PaozHQRJmrlRHN+jMCI64Uvzmb/vwePdXFR5CUNEHalnZdOCg0vrh8t
22+
skip_symbols: true
23+
on:
24+
branch: development
25+
- provider: NuGet
26+
server: https://www.myget.org/F/automapperdev/api/v2/package
27+
api_key:
28+
secure: zKeQZmIv9PaozHQRJmrlRHN+jMCI64Uvzmb/vwePdXFR5CUNEHalnZdOCg0vrh8t
29+
skip_symbols: true
30+
on:
31+
branch: master
32+
- provider: NuGet
33+
api_key:
34+
secure: t3blEIQiDIYjjWhOSTTtrcAnzJkmSi+0zYPxC1v4RDzm6oI/gIpD6ZtrOGsYu2jE
35+
on:
36+
appveyor_repo_tag: true

0 commit comments

Comments
 (0)