小编DNR*_*DNR的帖子

为什么要使用Repository Pattern或者请向我解释一下?

我正在学习存储库模式,正在阅读存储库模式,包括实体框架4.1和代码优先 通用存储库模式 - 实体框架,ASP.NET MVC和单元测试三角 关于它们如何使用实体框架实现存储库模式.

•从上层隐藏EF
•使代码更易于测试

使代码更易于测试我理解,但为什么要从上层隐藏EF?

看看它们的实现,似乎只是用实体方法包装实体框架来查询实体框架.实际上是这样做的原因是什么?

我假设是为了

  1. 松耦合(这就是为什么将EF隐藏在上层?)
  2. 避免重复写入相同查询的相同LINQ语句

我理解正确吗?

如果我写一个DataAccessLayer,这是一个有方法的类

QueryFooObject(int id)
{
..//query foo from entity framework
} 

AddFooObject(Foo obj)
{
.. //add foo to entity framework
}
......
QueryBarObject(int id)
{
..
}

AddBarObject(Bar obj)
{
...
}
Run Code Online (Sandbox Code Playgroud)

这也是一个存储库模式吗?

假人的解释会很棒:)

c# entity-framework repository-pattern

53
推荐指数
4
解决办法
4万
查看次数

数组可以容纳的最大大小是多少?

在C#2008中,数组可以容纳的最大大小是多少?

c# arrays

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

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

使用vb.net和EPPlus进行细胞包装

我试图使用EPPlus和VB.net/ASP.Net在单元格中包装一个值
有没有人能够这样做?我搜索了SO和谷歌,但没有运气.

vb.net asp.net epplus

18
推荐指数
1
解决办法
9396
查看次数

实现接口的好处

在C#3.5中实现接口有什么好处?

c# interface

15
推荐指数
5
解决办法
2万
查看次数

错误:无法评估表达式,因为代码已优化

我在我的asp.net应用程序中看到错误

"无法评估表达式,因为代码已经过优化,或者本机框架位于调用堆栈之上."

protected void btnCustomerProfile_Click(object sender, EventArgs e)
{
    try
    {
        Server.Transfer("CustomerProfile.aspx");
    }
    catch (Exception ex)
    {
        Response.Write(ex.ToString());
    }
    finally
    { }
}
Run Code Online (Sandbox Code Playgroud)

在搜索SO之后,我看到大多数类似的帖子都涉及response.redirect.我的代码使用的是server.transfer,我的应用程序也在使用母版页.

我该如何解决这个问题?

更新:由于某种原因,发生此错误是我也使用Response.Redirect.不幸的是我无法使用Server.Execute,因为Server.Execute将调用页面调用到最后.

c# asp.net master-pages server.transfer

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

window.top.document.body.scrollTop无法在Chrome或FireFox中运行

我有下面的代码将打开一个模态窗口.这适用于IE 8,但不适用于Chrome或FF.我是跨浏览器功能的新手.

function ShowModal(WindowID,FramesetID)
{
    window.onscroll = function () { window.top.document.getElementById(WindowID).style.top = window.top.document.body.scrollTop; };
    window.top.document.getElementById(WindowID).style.display = "block";
    window.top.document.getElementById(WindowID).style.top = document.body.scrollTop;

    widthv=parseInt(parseInt(screen.width)/1.50);
    heightv=parseInt(parseInt(screen.height)/1.50); 

    window.top.document.getElementById(FramesetID).style.width=widthv;
    window.top.document.getElementById(FramesetID).style.height=heightv;
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助使这个代码Chrome&FF兼容吗?
我试图改变window.topwindow.parent,但没有运气另外,多个浏览器编码时(我已经浏览过,但并没有完全找到跨浏览器兼容的任何一套规则)的任何规则要记住?

更新:
问题是在IE中,此模态窗口大约出现在屏幕大小的一半.在FF和Chrome中,模态窗口大约是一美元硬币的大小.

javascript firefox google-chrome

9
推荐指数
4
解决办法
2万
查看次数

在我的SQL select查询中获取recordID

我有一个简单的存储过程返回记录:

Select empID, EmpFirstName, EmpLastName from EMPLOYEES  
Run Code Online (Sandbox Code Playgroud)

返回的结果是:

    EmpID         EmpFirstName       EmpLastName  
    -----         ------------       -----------  
   30152          John               Smith  
   30114          Tom                Jones  
   56332          Steve              Williams  
   85442          Paul               Johnson  
Run Code Online (Sandbox Code Playgroud)

我需要的是:

 RecID       EmpID         EmpFirstName       EmpLastName  
 -----       -----         ------------       -----------  
 1      30152          John               Smith  
 2      30114          Tom                Jones  
 3      56332          Steve              Williams  
 4      85442          Paul               Johnson  
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得recordID列?

谢谢

sql sql-server select stored-procedures

8
推荐指数
1
解决办法
7499
查看次数

gridView.DataSource作为DataTable在asp.net中设置为null

我将gridview.datasource设置为数据表变量,如下所示:

DataTable dt = gvPaymentHistory.DataSource as DataTable;  
Run Code Online (Sandbox Code Playgroud)

gvPaymentHistory.DataSource有一条记录,但是在执行该行之后dt为null.如何将数据源记录传递给dt?

编辑

DataSource是类对象的List集合.它不是DataSet

c# asp.net gridview datasource

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

SQL Server 2008 R2 Express错误:无法打开登录请求的数据库"PersonnelPro".登录失败

我在我的数据库中使用SQL Server 2008 R2 Express和"SQL Server和Windows身份验证"模式.我可以使用Enterprise Manager打开数据库,但是当我运行我的aspx应用程序时,我得到:

无法打开登录请求的数据库"PersonnelPro".登录失败.

我的web.config连接字符串是:

<add name="dbString" 
     connectionString="Provider=sqloledb;Data Source=AREA51\SQLEXPRESS;Initial Catalog=PersonnelPro;User Id= ****;Password= ****" />`   
Run Code Online (Sandbox Code Playgroud)

我在网上搜索了SO,但找不到解决方案.什么会导致这个问题?

更新:
查看SQL日志文件("C:\ Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\Log"),我发现:

2012-12-21 05:58:00.97 Logon       Error: 18456, Severity: 14, State: 38.
2012-12-21 05:58:00.97 Logon       Login failed for user 'PersonnelPro'. Reason: Failed to open the explicitly specified database. [CLIENT: <named pipe>]
Run Code Online (Sandbox Code Playgroud)

此Web应用程序由第三方公司提供.从技术上讲,我只需要配置我的web.config文件,它应该可以工作.

asp.net database-connection login web-config sql-server-2008r2-express

6
推荐指数
1
解决办法
2067
查看次数