在实体框架中执行CRUD操作的最佳实践

3

我正在试图确定每个实体的数据库操作应该放在哪里。在这种困惑之前,对于每个实体,我都是在一个提供程序类中进行所有这些数据库操作。提供程序类意味着每个类都有一个提供程序,例如:

class Member
{
   public string FirstName;
   public string LastName;
}

class MemberProvider
{
  //Singleton
  //Do database operations

   ......

   public List<Member> GetItems(FirstName = null, LastName = null)
   {
       // run store procedure
       //this returns List<Member> if any
   }

   public Member GetItem(int? Id = null,FirstName = null, LastName = null)
   {
       // run store procedure
       //this return Member if any
   }

   ....
}

当我需要一个带有筛选功能的成员列表时,我会这样做:

 List<Member> members = MemberProvider.Instance.GetItems(FirstName = "John", LastName = "Black");

问题是如何在实体本身中执行与数据库操作相关的所有操作?这是一个好的做法吗?我应该读些什么来理解这个概念?
提前感谢您。

你是在使用Entity Framework还是其他的系统? - Jeremy Todd
我只是使用EntityFramework作为数据访问层。 - Barış Velioğlu
考虑使用仓储模式,这将有助于长期运行。 - Yusubov
4个回答

5

4

1
这些链接非常有帮助! - Dennis Traub

3

您应该考虑使用“关注点分离”原则。因此,另一个类应负责crud操作。

您可以考虑查看存储库模式。Patrik Löwendahl编写了一篇易于阅读的入门教程。


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接