是否可以将静态属性放入存储库中,或者这是一种不好的做法
本文关键字:一种 或者 静态 属性 存储 是否 | 更新日期: 2023-09-27 18:11:52
我正在c#中使用MVP构建一个winform,我有一个存储库,从DB中检索所有数据,但要检索该数据,我不使用ID,而是由用户插入的引用(字符串),因此一旦用户插入该引用,我可以使用存储库中创建的所有函数来检查数据,显示一些信息并填充列表,因此用户可以选择缺失的信息。
这里有一个例子,
而不是这个:
public class DataRepository
{
private readonly DataEntities dataContext;
public DataRepository()
{
this.dataContext = new DataEntities();
}
public Data GetData(string reference)
{
//Retrieves from DB
}
public bool matchData(string reference)
{
//Retrieves from DB
}
public bool isValidData(string reference)
{
//Retrieves from DB
}
}
我正在做这个:
public class DataRepository
{
private readonly DataEntities dataContext;
public static string reference{ get; set; }
public DataRepository()
{
this.dataContext = new DataEntities();
}
public Data GetData()
{
//Retrieves from DB using 'reference'
}
public bool matchData()
{
//Retrieves from DB
}
public bool isValidData()
{
//Retrieves from DB
}
}
谢谢! !
您应该考虑如何使用这个属性,以及它与存储库实例的生命周期和您拥有的实例数量之间的关系:
- 如果存储库的不同方法需要接受不同的
ref
值,则使用方法参数。 - 如果在存储库实例的生命周期内,存储库的所有方法都应该使用相同的
ref
值,则使用实例属性(并在构造函数中初始化) - 如果存储库的所有实例应该使用相同的
ref
值,那么它应该是静态属性