我正在学习存储库模式,正在阅读存储库模式,包括实体框架4.1和代码优先 和通用存储库模式 - 实体框架,ASP.NET MVC和单元测试三角 关于它们如何使用实体框架实现存储库模式.
话
•从上层隐藏EF
•使代码更易于测试
使代码更易于测试我理解,但为什么要从上层隐藏EF?
看看它们的实现,似乎只是用实体方法包装实体框架来查询实体框架.实际上是这样做的原因是什么?
我假设是为了
我理解正确吗?
如果我写一个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)
这也是一个存储库模式吗?
假人的解释会很棒:)
我试图使用EPPlus和VB.net/ASP.Net在单元格中包装一个值
有没有人能够这样做?我搜索了SO和谷歌,但没有运气.
我在我的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将调用页面调用到最后.
我有下面的代码将打开一个模态窗口.这适用于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.top到window.parent,但没有运气另外,多个浏览器编码时(我已经浏览过,但并没有完全找到跨浏览器兼容的任何一套规则)的任何规则要记住?
更新:
问题是在IE中,此模态窗口大约出现在屏幕大小的一半.在FF和Chrome中,模态窗口大约是一美元硬币的大小.
我有一个简单的存储过程返回记录:
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列?
谢谢
我将gridview.datasource设置为数据表变量,如下所示:
DataTable dt = gvPaymentHistory.DataSource as DataTable;
Run Code Online (Sandbox Code Playgroud)
gvPaymentHistory.DataSource有一条记录,但是在执行该行之后dt为null.如何将数据源记录传递给dt?
编辑
DataSource是类对象的List集合.它不是DataSet
我在我的数据库中使用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
c# ×5
asp.net ×4
arrays ×1
datasource ×1
epplus ×1
firefox ×1
gridview ×1
interface ×1
javascript ×1
login ×1
master-pages ×1
select ×1
sql ×1
sql-server ×1
vb.net ×1
vb6 ×1
vbscript ×1
web-config ×1