-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Welcome to the blayer wiki! Here you'll find detailed information on how to use the library.
Here's how to get started:
You only need one project to handle your domain interactions to work with Blayer.Data, but desirably you'd have the following structure:
-
Create 2 projects:
Your.Namespace.DomainYour.Namespace.Poco
-
Add
Blayer.Datato your domain project
Folders:
- AdditionalSteps
- ModelConfiguration
- Notifications
- Repositories
- Validations
A file in the root of the project named AppConfiguration (just an example) with the content:
namespace UserNamespace
{
public class AppConfiguration : RepositoryConfiguration
{
}
}This project should reference Blayer.Data and Your.Namespace.Poco (if you have that project).
Just your regular POCO classes
Copy the folders under Blayer.Data/Templates to:
C:\Program Files (x86)\<your_vs_version>\Common7\IDE\ItemTemplates\CSharp\Blayer
Example:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplates\CSharp\Blayer
This will allow you to use the code templates provided to be used with Blayer.
It's very likely VS won't just reload and show you the new templates, so you might need to:
- Close all instances of Visual Studio.
- Delete the
ItemTemplateCachefolder insideC:\Program Files (x86)\<your_vs_version>\Common7\IDE - On the Start menu, click Run, type cmd, and click OK.
- At the command prompt, locate the directory that contains devenv.exe, and type devenv /installvstemplates.
- Run devenv /setup.
- Run Visual Studio.
- Creating POCO classes
- Creating Repositories
- Creating ModelConfiguration
- Creating AdditionalSteps
- Creating Notifications
- Creating Validations
- Performing CRUD operations
- Performing SQL queries
- AppContext class
Is used when we need to execute actions post validations. This is used for repetitive tasks that happen every time a record is created/updated and/or removed.
Example:
Let's say we need to change the date and time of the last operation in a record. We create a class implementing IAdditionalStep and use the following code:
switch (state)
{
// If the entity was added (data creation)
case System.Data.Entity.EntityState.Added:
{
entity.LastAction = DateTime.Now;
}
break;
// If the entity was removed (data removal)
case System.Data.Entity.EntityState.Deleted:
{
}
break;
// If the entity was updated (data update)
case System.Data.Entity.EntityState.Modified:
{
entity.LastAction = DateTime.Now;
}
break;
default:
break;
}This way every time we add or update one of the records represented by this repository the property LastAction will be automatically updated.
Is ...
Is ...
Every class implementing any of those interfaces will have a method with a switch inside. Depending on the state of the record a specific section is hit. The properties are as informed below:
-
System.Data.Entity.EntityState state: Entity's current state - state of the record. If it is being created, modified or deleted. -
object entityObject: Entity - the entity that is currently being processed. -
object originalEntity: Unmodified entity - the original entity as it is in the database at the moment of this execution. This property is only present when the state is modified.