小编han*_*r18的帖子

接口隔离原理 - 编程到接口

我正在阅读有关SOLID和其他设计原则的内容.我认为ISP与"程序接口,而非实现"相同.但看起来这些是不同的原则?

有区别吗?

oop design-patterns solid-principles interface-segregation-principle

21
推荐指数
3
解决办法
5744
查看次数

优化LINQ to Objects查询


我在列表中有大约200K的记录,我正在循环它们并形成另一个集合.这在我的本地64位Win 7上工作正常但是当我将它移动到Windows Server 2008 R2时,需要花费很多时间.几乎差不多一个小时!

我试着查看Compiled Queries并且仍在计算它.
由于各种原因,我们无法进行数据库连接并检索子值

这是代码:

//listOfDetails is another collection
List<SomeDetails> myDetails = null;
foreach (CustomerDetails myItem in customerDetails)
{

    var myList = from ss in listOfDetails
                 where ss.CustomerNumber == myItem.CustomerNum
                 && ss.ID == myItem.ID
                 select ss;
     myDetails = (List<SomeDetails>)(myList.ToList());
     myItem.SomeDetails = myDetails;
}
Run Code Online (Sandbox Code Playgroud)

c# linq-to-objects

3
推荐指数
1
解决办法
1759
查看次数

分层体系结构中的存储库模式

我已经阅读了很多关于存储库模式的文章,并提出了一些问题.我正在尝试在ASP.NET 4.0应用程序中实现它.该体系结构是一个分层体系结构,具有表示层,业务层和数据层.来自这篇文章,http://www.primaryobjects.com/CMS/Article108.aspx

我创建了MYSQLRepository(DataLayer)

public class MySQLRepository:IOrderRepository
{
    public List<Order> GetOrders()
    {

        List<Order> orders = new List<Order>();
        orders.Add(new Order(1,"A"));
        orders.Add(new Order(2,"B"));

        return orders;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的业务层看起来像这样

public class OrderBL
{
    IOrderRepository orderrep;
    public OrderBL(IOrderRepository repository)
    {
       orderrep = repository;

    }

    public List<Order> GetOrders()
    {
        return orderrep.GetOrders();

    }
}
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,在表示层,我希望这样做

protected void Page_Load(object sender, EventArgs e)
{
    OrderBL orderBL = new OrderBL(new MySQLRepository());
    List<Order> orders = orderBL.GetOrders();

    foreach (Order order in orders)
    {
        Response.Write(order.OrderId.ToString() + ". " + order.OrderNo …
Run Code Online (Sandbox Code Playgroud)

c# asp.net webforms repository-pattern

2
推荐指数
1
解决办法
5090
查看次数