相关疑难解决方法(0)

IEnumerable与IQueryable的业务逻辑或DAL返回类型

我知道之前已经问过这些问题,我将首先列出其中一些问题(我到目前为止已经阅读过的):

正如你所看到的那样,关于这个主题的SO本身有一些很好的资源,但是有一个问题/部分的问题,我仍然不确定是否已经阅读了这些内容.

我主要关注IEnumerable和IQueryable问题,更具体地说是DAL与它的消费者之间的耦合.

我发现有关两个接口的建议各不相同,这两个接口都很棒.但是,我关注的是DAL返回IQueryable的含义.据我了解,IQueryable建议/暗示有一个Linq提供商.这是第一个问题 - 如果DAL突然需要来自非Linq提供的数据源,该怎么办?以下方法可行,但它更像是黑客攻击吗?

public static IQueryable<Product> GetAll()
{
    // this function used to use a L2S context or similar to return data 
    // from a database, however, now it uses a non linq provider

    // simulate the non linq provider...
    List<Product> results = new …
Run Code Online (Sandbox Code Playgroud)

c# data-access-layer .net-4.0 visual-studio-2010

24
推荐指数
1
解决办法
4214
查看次数

数据访问层的设计模式

你可能觉得这是家庭作业,因为我很抱歉.我搜索过但找不到合适的答案.

所以我的问题是:

我有几个类,每个类都有一个保存方法.所以我为数据库处理创建了一个单独的类.

namespace HospitalMgt.Data
{
    public static class DBConnection
    {
        public static string constr = "Data Source=ABD;Initial Catalog=HospitalMgt;User Id=sa;Password=123";
        public static SqlConnection con;
      //  public static SqlCommand com;

        public static SqlConnection OpenConnection()
        {
            con= new SqlConnection(constr);
            con.Open();
            return con;
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我不认为使用DBConnection类实现所有类是合适的.

我的问题 :

  1. 什么设计模式适合克服这个问题?
  2. 将DBConnection创建为类是一种好习惯吗?(或者它应该是一个接口)

我使用Factory方法找到了一些关于DA图层的文章,但据我所知,这种模式不适合我的情况.

.net c# design-patterns

12
推荐指数
3
解决办法
3万
查看次数