将静态属性存入存储库是否可以,或者这是一种不好的做法?

时间:2014-07-07 14:29:26

标签: c# repository

我在C#中使用MVP构建winform并且我有一个存储库,它从数据库中检索所有数据但是要检索那些我不使用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
    }
}

谢谢!

1 个答案:

答案 0 :(得分:1)

您应该考虑使用此属性的 以及它与存储库实例的生命周期和您拥有的实例数的关系:

  • 如果存储库的不同方法应接受ref的不同值,则使用方法参数。
  • 如果存储库实例的生命周期内所有存储库方法都应使用相同的ref值,则使用实例属性(并在构造函数中初始化)
  • 如果存储库的所有实例都应使用相同的ref值,那么它应该是静态属性