Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
Dapper
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
tsai
Dapper
Commits
a104524e
Commit
a104524e
authored
Jun 20, 2015
by
johandanforth
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/StackExchange/dapper-dot-net.git
parents
984055aa
afe6ce10
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
67 additions
and
20 deletions
+67
-20
Readme.md
Dapper.Contrib/Readme.md
+66
-19
Readme.md
Readme.md
+1
-1
No files found.
Dapper.Contrib/Readme.md
View file @
a104524e
...
@@ -3,10 +3,10 @@ Dapper.Contrib - more extensions for dapper
...
@@ -3,10 +3,10 @@ Dapper.Contrib - more extensions for dapper
Features
Features
--------
--------
Dapper.Contrib contains a number of helper methods for inserting, getting, updating and deleting files.
Dapper.Contrib contains a number of helper methods for inserting, getting,
updating and deleting files.
As with dapper, all extension methods assume the connection is already open, they will fail if the
The full list of extension methods in Dapper.Contrib right now are:
connection is closed. The full list of extension methods in Dapper.Contrib right now are:
```
csharp
```
csharp
T
Get
<
T
>(
id
);
T
Get
<
T
>(
id
);
...
@@ -20,8 +20,8 @@ bool Delete<T>(Enumerable<T> list);
...
@@ -20,8 +20,8 @@ bool Delete<T>(Enumerable<T> list);
bool
DeleteAll
<
T
>();
bool
DeleteAll
<
T
>();
```
```
For these extensions to work, the entity in question _MUST_ have a
key-property, a property named "id" or decorated with
For these extensions to work, the entity in question _MUST_ have a
a
[
Key
]
attribute.
key-property, a property named "
`id`
" or decorated with a
`[Key]`
attribute.
```
csharp
```
csharp
public
class
Car
public
class
Car
...
@@ -37,51 +37,71 @@ public class User
...
@@ -37,51 +37,71 @@ public class User
string
Name
{
get
;
set
;
}
string
Name
{
get
;
set
;
}
int
Age
{
get
;
set
;
}
int
Age
{
get
;
set
;
}
}
}
```
```
`Get` methods
Gets
-------
-------
Get one specific entity based on id, or a list of all entities in the table.
Get one specific entity based on id
```
csharp
```
csharp
var
car
=
connection
.
Get
<
Car
>(
1
);
var
car
=
connection
.
Get
<
Car
>(
1
);
```
or a list of all entities in the table.
```
csharp
var
cars
=
connection
.
GetAll
<
Car
>();
var
cars
=
connection
.
GetAll
<
Car
>();
```
```
Insert
s
`Insert` method
s
-------
-------
Insert one entity or a list of entities.
Insert one entity
```
csharp
```
csharp
connection
.
Insert
(
new
Car
{
Name
=
"Volvo"
});
connection
.
Insert
(
new
Car
{
Name
=
"Volvo"
});
```
or a list of entities.
```
csharp
connection
.
Insert
(
cars
);
connection
.
Insert
(
cars
);
```
```
Update
s
`Update` method
s
-------
-------
Update one specific entity
or update a list of entities.
Update one specific entity
```
csharp
```
csharp
connection
.
Update
(
new
Car
()
{
Id
=
1
,
Name
=
"Saab"
});
connection
.
Update
(
new
Car
()
{
Id
=
1
,
Name
=
"Saab"
});
```
or update a list of entities.
```
csharp
connection
.
Update
(
cars
);
connection
.
Update
(
cars
);
```
```
Delete
s
`Delete` method
s
-------
-------
Delete
one specific entity, a list of entities, or _ALL_ entities in the table.
Delete
an entity by the specified
`[Key]`
property
```
csharp
```
csharp
connection
.
Delete
(
new
Car
()
{
Id
=
1
});
connection
.
Delete
(
new
Car
()
{
Id
=
1
});
```
a list of entities
```
csharp
connection
.
Delete
(
cars
);
connection
.
Delete
(
cars
);
```
or _ALL_ entities in the table.
```
csharp
connection
.
DeleteAll
<
Car
>();
connection
.
DeleteAll
<
Car
>();
```
```
...
@@ -89,8 +109,35 @@ Special Attributes
...
@@ -89,8 +109,35 @@ Special Attributes
----------
----------
Dapper.Contrib makes use of some optional attributes:
Dapper.Contrib makes use of some optional attributes:
*
Table("Tablename") - use another table name instead of the name of the class
*
`[Table("Tablename")]`
- use another table name instead of the name of the class
*
Key - this property is the identity/key (unless it is named "Id")
*
Write(true/false) - this property is (not) writeable
```csharp
*
Computed - this property is computed and should not be part of updates
[Table ("emps")]
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
}
```
*
`[Key]`
- this property is the identity/key (unless it is named "Id")
*
`[Write(true/false)]`
- this property is (not) writeable
*
`[Computed]`
- this property is computed and should not be part of updates
Limitations and caveats
-------
### SQLite
`SQLiteConnection`
exposes an
`Update`
event that clashes with the
`Update`
extension provided by Dapper.Contrib. There are 2 ways to deal with this.
1.
Call the
`Update`
method explicitly from
`SqlMapperExtensions`
```Csharp
SqlMapperExtensions.Update(_conn, new Employee { Id = 1, Name = "Mercedes" });
```
2.
Make the method signature unique by passing a type parameter to
`Update`
```Csharp
connection.Update<Car>(new Car() { Id = 1, Name = "Maruti" });
```
Readme.md
View file @
a104524e
...
@@ -305,7 +305,7 @@ Dapper supports fully stored procs:
...
@@ -305,7 +305,7 @@ Dapper supports fully stored procs:
```
csharp
```
csharp
var
user
=
cnn
.
Query
<
User
>(
"spGetUser"
,
new
{
Id
=
1
},
var
user
=
cnn
.
Query
<
User
>(
"spGetUser"
,
new
{
Id
=
1
},
commandType
:
CommandType
.
StoredProcedure
).
First
();}}}
commandType
:
CommandType
.
StoredProcedure
).
SingleOrDefault
();
```
```
If you want something more fancy, you can do:
If you want something more fancy, you can do:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment