存储库模式帮助
我正在尝试为每个表创建一个存储库类。例如我有 TableA、TableB 和 TableC。 TableB 和 TableC 具有 TableA 的外键。我使用 SaveData() 和 ListData() 创建了 TableA、TableB 和 TableC 的接口。我有 MVC 表单,它将数据插入到这些表中。在实现这些接口方法时,我是否必须为每个接口创建一个单独的类?如果我做得对,请让我这样做。我很感激任何帮助。
Public interface ITableA
{
void SaveData(TableAEntity);
List<TableAEntity> ListData();
}
Public interface ITableB
{
void SaveData(TableBEntity);
List<TableBEntity> ListData();
}
Public class ImplementTableA_TableB: ITableA, ITableB
{
public void SaveData(TableAEntity)
{
}
public void SaveData(TableBEntity)
{
}
}
I am trying to create a repository class for each table. For example I have TableA, TableB and TableC. TableB and TableC has Foreign key to TableA. I created an interface for TableA, TableB and TableC with SaveData() and ListData(). I have MVC form which inserts the data into these tables. When implementing these interface methods do I have to create a seperate class for each interface? Please let me if I am doing right. I appreciate any help.
Public interface ITableA
{
void SaveData(TableAEntity);
List<TableAEntity> ListData();
}
Public interface ITableB
{
void SaveData(TableBEntity);
List<TableBEntity> ListData();
}
Public class ImplementTableA_TableB: ITableA, ITableB
{
public void SaveData(TableAEntity)
{
}
public void SaveData(TableBEntity)
{
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这取决于。事实上,在使用存储库模式时,应该考虑聚合,而不是表格。
所以,是的,根据您的域模型,您最终可能只有一个存储库类负责处理两个或多个实体(或表)。但由于我不知道您的域模型的任何特殊性,因此我无法告诉您这里是否属于这种情况。
请查看 此处。这是 NHibernate FAQ 的链接,但即使您没有使用该 ORM,也有相关信息。
It depends. In fact, when using the repository pattern one should think about aggregates, not tables.
So, yes, depending of your domain model you may end up having just one repository class that is responsible for dealing with two or more entities (or tables). But since I do not know about any particularity of your domain model, I won't be able to tell you if that's the case here.
Please, take a look at here. This is a link to the NHibernate FAQ, but there is relevant information even if you are not using that ORM.
最简单的方法是:
第 1 步:为您需要的每个实体创建一个模型。
例如。
步骤 2:使用 Automapper 例如创建到数据库表的映射
。
步骤 3:创建一个可以执行所有数据库操作的存储库。
The easiest way you can do this is:
Step 1: Create a model for every entity you need.
Eg.
Step 2: Create a Mapping to the database table, using Automapper
Eg.
Step 3: Create a repository that would do all your database operations.