在领域驱动设计,似乎有很多的协议,任何单位不得直接访问存储库.
这是来自Eric Evans Domain Driven Design的书,还是来自其他地方?
对于它背后的推理,哪里有一些很好的解释?
编辑:澄清:我不是在谈论将数据访问分离到业务逻辑的单独层的经典OO实践 - 我在谈论DDD中的特定安排,实体不应该与数据对话访问层(即它们不应该包含对Repository对象的引用)
更新:我给了BacceSR赏金,因为他的回答似乎最接近,但我仍然对这个问题一无所知.如果它有这么重要的原则,肯定会在网上有一些关于它的好文章吗?
更新:2013年3月,关于这个问题的投票意味着人们对此很感兴趣,即使有很多答案,我仍然认为如果人们有这方面的想法,还有更多的空间.
oop domain-driven-design s#arp-architecture repository-pattern
想象一下下表(称为TestTable):
id somedate somevalue
-- -------- ---------
45 01/Jan/09 3
23 08/Jan/09 5
12 02/Feb/09 0
77 14/Feb/09 7
39 20/Feb/09 34
33 02/Mar/09 6
Run Code Online (Sandbox Code Playgroud)
我想要一个以日期顺序返回运行总计的查询,例如:
id somedate somevalue runningtotal
-- -------- --------- ------------
45 01/Jan/09 3 3
23 08/Jan/09 5 8
12 02/Feb/09 0 8
77 14/Feb/09 7 15
39 20/Feb/09 34 49
33 02/Mar/09 6 55
Run Code Online (Sandbox Code Playgroud)
我知道在SQL Server 2000/2005/2008中有各种方法可以做到这一点.
我对使用aggregate-set-statement技巧的这种方法特别感兴趣:
INSERT INTO @AnotherTbl(id, somedate, somevalue, runningtotal)
SELECT id, somedate, somevalue, null
FROM TestTable
ORDER …Run Code Online (Sandbox Code Playgroud) (在尝试回答另一个问题的过程中提出这个问题)
考虑以下名为GroupTable的MS-SQL表:
GroupID ------- 1 2 3
其中GroupID是主键,是Identity列.
如何在不使用IDENTITY_INSERT ON的情况下在表中插入新行(从而生成新ID)?
请注意:
INSERT INTO GroupTable() Values ()
Run Code Online (Sandbox Code Playgroud)
......不行.
编辑:我们在这里谈论SQL 2005或SQL 2008.
注意:这是关于在iPhone上模拟浏览器而不是模拟整个设备的问题.我知道在Windows上无法进行iPhone设备模拟,正如此处详细讨论的那样.
我有一个在iPhone上查看时看起来很奇怪的网站 - 它的某种CSS问题.
当我在Safari for Windows(或任何其他Windows浏览器)中查看该站点时,不会发生同样的问题.
那么,有没有在Windows上运行的好的iPhone 浏览器模拟器?即以与iPhone浏览器相同的方式呈现网站.
如果有一些方法可以详细检查CSS,就像使用Chrome的"检查元素"开发人员功能一样,可以获得奖励积分.
编辑:对于好奇,我试图解决的渲染问题在这里描述: CSS背景图像在iPhone上呈现不同
在IIS 6.0中,有一种简单的方法可以将对文件夹的请求重定向到另一个文件夹,同时保留其余路径.
例如
如果我已将内容从:
mysite.org.uk/stuff
移至
stuff.mysite.org.uk/
我可以自动将特定页面的请求(如
mysite.org.uk/stuff/countrybriefing/tanzania/travel.html)重定向
到
stuff.mysite.org.uk/countrybriefing/tanzania/travel.html
我知道.htaccess可以在Apache中做这样的事情,在IIS中是否有相同的东西?
在IIS 6(以及其他版本太远)中,属性 - >主目录选项卡 - >配置按钮 - >选项选项卡中有会话超时设置.看起来像这样:

在ASP.NET web.config中有一个SessionState设置,如下所示:
<system.web>
<sessionState timeout="120" />
<!-- etc .. -->
</system.web>
Run Code Online (Sandbox Code Playgroud)
他们是否有任何机会相关?他们设置相同的东西,或不同的东西?
有时在Salesforce测试中,您需要创建User对象以作为特定类型的用户运行部分测试.
但是,自Salesforce Summer 08更新以来,尝试在同一测试中创建User对象和普通对象(如Accounts)会导致以下错误:
MIXED_DML_OPERATION,更新非安装对象后,不允许对安装对象进行DML操作(反之亦然):用户,原始对象:帐户
请注意,从Eclipse/Force.com IDE运行测试时不会发生错误,但是当您部署到Salesforce然后从Salesforce中运行测试时,确实会发生错误.
如何重新编写测试以避免此错误?
以下是导致错误的测试的简单示例:
static testMethod void test_mixed_dmlbug() {
Profile p = [select id from profile where name='(some profile)'];
UserRole r = [Select id from userrole where name='(some role)'];
User u = new User(alias = 'standt', email='standarduser@testorg.com',
emailencodingkey='UTF-8', lastname='Testing',
languagelocalekey='en_US',
localesidkey='en_US', profileid = p.Id, userroleid = r.Id,
timezonesidkey='America/Los_Angeles',
username='standarduser@testorg.com');
Account a = new Account(Firstname='Terry', Lastname='Testperson');
insert a;
System.runAs(u) {
a.PersonEmail = 'test@madeupaddress.com';
update a;
}
}
Run Code Online (Sandbox Code Playgroud) 在Salesforce中,如果我将日期绑定到VisualForce页面,我该如何应用自定义格式?
例:
<apex:page standardController="Contact">
<apex:pageBlock title="Test">
<p>{!contact.Birthdate}</p>
</apex:pageBlock>
<apex:detail relatedList="false" />
</apex:page>
Run Code Online (Sandbox Code Playgroud)
这将以默认格式输出日期:
2009年7月1日09:10:23 GMT 2009
如何将其(例如)转换为dd/mm/yyyy格式,如下所示:
01/07/2009
(希望这是一个相当简单的问题,但为了让Salesforce社区继续进行,我想我们需要一些简单的问题.)
使用Windows ICO文件,您可以将多个不同大小的图像打包到同一个ICO文件中 - 然后Windows会根据需要选择不同的大小.(有关图标大小的信息,请参阅此处)
有很多免费的在线工具可以拍摄单个图像并将其制作成ICO文件,但是有没有免费的在线工具可以拍摄多张图像并将它们整合到一个ICO文件中?
NSIS有一个您在脚本中定义的Name变量:
Name "MyApp"
Run Code Online (Sandbox Code Playgroud)
它定义了安装程序的名称,它显示为窗口标题等.
有没有办法从我的主EXE中提取.NET版本号并将其附加到名称?
这样我的安装程序名称将自动为"MyApp V2.2.0.0"或其他什么?
iis ×2
salesforce ×2
sql ×2
sql-server ×2
apex-code ×1
asp.net ×1
browser ×1
date-format ×1
ico ×1
icons ×1
identity ×1
iis-6 ×1
iphone ×1
nsis ×1
oop ×1
redirect ×1
safari ×1
session ×1
simulation ×1
t-sql ×1
unit-testing ×1
visualforce ×1
windows ×1