generic-repository | Generic implementation of Repository pattern in C # .NET | SQL Database library
kandi X-RAY | generic-repository Summary
kandi X-RAY | generic-repository Summary
GenericRepository project is generic implementation of Repository pattern in .NET. For detailed discussion please see project's wiki pages and especially Introduction.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of generic-repository
generic-repository Key Features
generic-repository Examples and Code Snippets
Community Discussions
Trending Discussions on generic-repository
QUESTION
I came across this question, and liked how the generic update for one-to-many is implemented.
I tried to mimic it to implement a one-to-one version for myself but could not be totally successful. Following is the result of my struggle -
...ANSWER
Answered 2020-Sep-05 at 15:50For Problem #01, I couldn't find equivalent of GetCollectionAccessor
, but one way I can think of solving it using EF Core
metadata, would be calling the Entry
method in the disconnected Entity:
QUESTION
I followed a tutorial on Generic Repository Pattern with ASP.NET core with EF CORE, here for example
...ANSWER
Answered 2018-Sep-20 at 09:03We had a project which we had dapper generic repository but after project evolved we have ditched the generic repository to use the real power of dapper.
I would recommend to use Dapper as direct without generic CRUD operations.
To demonstrate what we had i will provide a sample code which is not production ready will give you an idea to implement your own generic repo.
QUESTION
How do I find Primary Key from an Entity Framework Core 2 Database Scaffold using Reflection .dll?
We need to find Primary Key Member given an EntityName, and return Primary Key Member as string. Conducted Reverse Scaffolding on Sql Server database .
...ANSWER
Answered 2020-Feb-18 at 09:26Expanding on suggestions from comments, you can instantiate the context in your code and invoke all EF model inspection APIs as outlined in Ivan's answer like so:
QUESTION
Further to the Stack Overflow question How to set created date and Modified Date to enitites in DB first approach asked by user LP13 and answered by user Ogglas.
I am writing a test project to learn new development approaches and have hit a wall. I am trying to implement the answer provided by Ogglas, however I am unsure how to register the "Wrapper" in AutoFac?
Ogglas's and My Code Example
...ANSWER
Answered 2019-Dec-03 at 12:45builder.RegisterType().AsSelf().
QUESTION
I was reading a really cool article about creating a generic Async repository using the following link https://blog.zhaytam.com/2019/03/14/generic-repository-pattern-csharp/ The interface defines all operations as tasks but the implementation chooses not to use the async/await pattern on a few methods. I'd like to further my understanding of this so decided to post on here. At first glance, it would seem like the client may not know they need to wait for methods that are not marked async, but I probably don't understand this correctly. Can anyone comment as to why the author choose not to use async on some methods that return a task and not others?
...ANSWER
Answered 2019-Nov-08 at 19:44Notice that the methods have async
also have await
. In those methods you wait for the to execute to obtain the result, meanwhile in those methods without await
you don't care when they will be executed
QUESTION
How do I map two class members to one column in Entity Framework database? Is it possible? I tried the following code and received errors
...ANSWER
Answered 2019-Sep-25 at 02:14Generic repositories are an anti-pattern with Entity Framework. They're honestly not worth the hassle.
However, to map a ProductID column in the entity:
QUESTION
We are reviewing two different methods in generic repository patterns. Currently, want to map primary keys to Ids. The purpose of this is to map to the Generic Repository Interface which utilizes Id. Two solutions are provided below.
What are performance implications of .FindPrimaryKey().Properties. Does it cause a schema lock on database table in trying to find the primary key? Does it cause any application slowness?
How does it compare in performance vs Partial Class Method Solution 2? What option is better performance-wise?
Note: Architects demand the use of repository pattern at the workplace, so implementing it. Know there is debate surrounding this issue, but not my call.
Scaffolded Model Example:
...ANSWER
Answered 2019-Aug-07 at 07:30Regarding the first approach (using EF Core metadata services):
First, EF Core is ORM (Object Relational Mapper), with most important here is Mapper.
Second, it uses the so called code based model, which means all the mappings are provided by code and not the actual database (even though the model is created by reverse engineering of an existing database).
In simple words, EF Core creates at runtime a memory data structure containing the information (metadata) about classes and properties, and their mappings to database tables, columns and relationships. All that information is based on pure code model - the entity classes, conventions, data annotations and fluent configuration.
All EF Core runtime behaviors are based on that metadata model. EF Core uses it internally when building queries, mapping the query results to objects, linking navigation properties, generating create/update/delete commands and their order of execution, updating temporary FK property values after getting the real autogenerated principal key values etc.
Hence the metadata model and discovering services (methods) use optimized data structures and are (has to be) quite efficient. And again, no database operations are involved.
So the first approach is quite efficient. The performance impact of obtaining the PK property name via metadata service is negligible compared to actual query building, execution and materialization.
Also the performance of the first approach is similar to EF Core Find
method which you are using in another method. Note that when calling Find
method you just pass the PK value(s) and not the properties. So the method implementation should somehow know how to build the Where
expression, right? And what it does internally is very similar to the suggested snippet.
Regarding the second approach:
It's simply not comparable because it doesn't work. It's possible to use base class/interface, but only if the actual property name is mapped - like all classes have Id
property, and it's mapped to different column name in the database tables using [Column]
data annotation or HasColumnName
fluent API.
In your example, the Id
property is [NotMapped]
(ignored). Which means EF Core cannot map to the table column. The fact that your are mapping it to another property via code (property getter/setter) doesn't matter. EF Core is not a (de)compiler, it can't see your code, hence cannot translate a LINQ query using such properties to SQL.
Which in EF Core 2.x leads to either client evaluation (very inefficient, reading to whole table and applying the filter in memory), or exception if client evaluation is configured to do so. And in EF Core 3.0+ it will always be an exception.
So in case you don't remove properties like PropertyId
and map the property Id
(which would be hard with "database first" models), the second "approach" should be avoided. And even if you can map the actual Id
property, all you'll save would be a few milliseconds. And again, when using Find
you don't bother about performance, why bother with methods that uses the same (or similar) approach.
QUESTION
I am trying to get work with many-to-many relationship in my web application. I am using a generic repository base code.
Here my the entities
...ANSWER
Answered 2018-Oct-31 at 14:31Your include path only has a single hop from UserEntity
to UserRoleEntity
(via the UserRoles
property. You need to include the next step to ensure you also capture the RoleEntity
. To do this, change your path to UserRoles.RoleEntity
, for example:
QUESTION
I am following this tutorial in order to understand better generic repositories.
GetById method :
...ANSWER
Answered 2018-Jun-06 at 10:32The tutorial has a type constraint on the generic argument
QUESTION
I'm currently completely unable to call .Include() and intellisense (in vscode) doesn't seem to think it exists.
Now after a long time searching the web I've found this:
Not finding .Include() method in my EF implementing Generic repository
which seems to suggest that .Include exists only in System.Data.Entities, which is only available for EF 5 and 6.
So how do i eager load my list property for an entity in EF core?
heres my context
...ANSWER
Answered 2017-Feb-09 at 14:36Here is a previous answer that is tracking this issue in EF7. It appears it is now 'included'.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install generic-repository
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page