小编cho*_*obo的帖子

JQuery语法检查器

有谁知道任何JQuery语法验证器或检查器?大括号杀了我.

javascript jquery

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

我正确使用服务层吗?

我一直在阅读有关DDD的信息,我认为我可能错误地使用了服务,或者至少以不那么理想的方式使用服务.我的服务类往往有很多包含存储库引用的实例变量,它们似乎做了很多工作(即有很多方法).

是否可以创建更有针对性的服务?像每个服务执行某些特定逻辑的方法一样?此外,服务类应该将实例变量存储到其他实体吗?我读到了一些关于无状态服务的内容,我不确定是否通过使用这些实例变量来破坏该规则.

谢谢!

domain-driven-design service-layer

7
推荐指数
1
解决办法
1482
查看次数

以多对多关系更新

我有一个多对多表,用于存储用户可以拥有的每个允许角色的记录.如果用户更新了他的角色(添加和删除)角色,我该如何处理?

我应该首先删除所有用户角色,然后添加所选用户角色吗?还是做某种匹配?

sql-server many-to-many

7
推荐指数
1
解决办法
2888
查看次数

存储库和使用原始sql查询?

我正在努力了解如何最好地查询存储库.

现在让我通过循环的三个因素是:

  1. 返回数据类型
  2. 要运行查询的列
  3. 要返回的记录数

第1点

关于问题一:

我有很多方法的存储库返回实体和标量值的组合.这似乎导致"方法爆炸".我应该总是返回一个Entity对象吗?我该如何查询只需要一列的对象?

第2点 当运行查询时,我是否应该包括表中的每一列,即使我只需要一列或两列?如果我为此创建特定查询,则会导致存储库中有更多方法

第3点 我应该如何为查询提供条件?我读到了有关规范的内容,但我的理解是您遍历返回的记录并过滤掉传入新集合的记录.这似乎不是一个明智的表现.现在我只是在Repo中创建一个新方法,如getNameById(),它封装了条件.

请注意,我没有使用ORM,我只是在我的存储库中有原始sql.

更新

第1点: 根据答案和更多的研究,这将是一个很好的实施?

现在我有一个大型存储库,它返回标量和实体类型对象的混合(所有相同的实体).我想如果我只使用GetUser(userId)方法并忘记编写只返回单列值的方法,我可以大大减少这个.

例如,如果我需要返回一个用户名,我可以调用GetUser(userId)方法来润滑User对象,然后在服务层中将其过滤到用户名.

另一种方法是使用某种我可以传递到Repository的QueryBuilder类,可以解析它以生成正确的sql.

第2点

回顾这一点非常类似于第一点,我目前的解决方案是只获取所有表字段.这是性能和可维护性之间的权衡.

第3点

我需要提供某种where子句.我不确定这是否有意义通过规范或只是一个SQL字符串.我目前的解决方案是为这些类型创建新的方法,但我想要一些更通用的存储库

总的来说,仍然在研究这个......我希望能够听到更多关于这一点的信息,或者链接到书籍或参考文献,将这一切联系在一起.

c# domain-driven-design repository ddd-repositories repository-pattern

7
推荐指数
1
解决办法
2184
查看次数

Session vs singleton模式

我有一个Web应用程序,我想从数据库中提取用户设置并存储它们以进行全局访问.将数据存储在Singleton或Session对象中会更有意义吗?这两者有什么区别?

将数据存储为对象引用还是将其分解为值类型对象(整数和字符串)更好?

c# asp.net asp.net-mvc design-patterns

6
推荐指数
2
解决办法
6615
查看次数

我应该如何在ASP.Net MVC站点中进行身份验证?

我有一个网站,其区域需要身份验证.现在我在该区域的所有控制器上使用roles属性,并运行查询以检索该用户ID及其所有设置.

对于我来说,每次该区域的控制器加载时,我正在检索用户标识和设置,这似乎是代码或设计的气味?我不确定我是否应该使用会话,或者ASP.Net MVC 2.0是否提供了一些独特的方法来处理这个问题.另一个问题是安全性.

总的来说,我真的不知道转向哪种方式.设计明智我想在用户登录该区域时只检索一次userId和设置.现在我每次控制器加载时都会抓取userId,然后如果需要,我每次都会查询数据库的设置.

authentication asp.net-mvc personalization asp.net-mvc-2

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

如何规范化浏览器的填充和边距

其他设计师如何规范浏览器的填充和边距.我已经尝试过CSS Resets(目前正在使用YUI),但是我仍然遇到很多不一致的问题.

对于某些元素,似乎某些浏览器将填充或边距设置为0px将触发浏览器使用由该浏览器确定的默认填充和边距.有没有办法硬重置所有浏览器的填充或边距,以便有一致的外观?


更新

从其他研究和反馈看来,几乎不可能让网站在不同的浏览器中看起来相同.我想我会坚持使用CSS重置,只是尝试更好地规划我的网站.

我不确定如何克服覆盖样式设置的默认浏览器机制,这可能需要付出太多努力.

css cross-browser css-reset

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

6
推荐指数
2
解决办法
2344
查看次数

为什么ERROR_MESSAGE()始终为空?

我正在sql server 2008中编写存储过程.问题是@ErrorMessage out参数始终为null.它似乎与ERROR_MESSAGE()函数有关,因为当我摆脱它时,返回消息的其他部分.

如何让它返回整个errorMessage?

-- Log transaction
        INSERT INTO Transactions (TxnId, TypeId, [Date], Amount)
                                    VALUES(@TxnId, @TypeId, @TransDate, @Amount)

        -- Check for errors
        IF @@ERROR <> 0
        BEGIN
            PRINT 'Starting third error block'

                SET @ErrorCode = 202
            SELECT @ErrorMessage = 'Err_TxnId_Exists - Error inserting: ' + ERROR_MESSAGE()

            PRINT @ErrorCode
            PRINT @ErrorMessage
            PRINT 'Ending third error block'

            RETURN 1
        END 
Run Code Online (Sandbox Code Playgroud)

消息输出

该语句已终止.启动第三错误块202

结束第三个错误块

(1排受影响)

结果

  • @ErrorCode = 202
  • @ErrorMessage = null

(1排受影响)

t-sql stored-procedures sql-server-2008

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

这个新的[]是什么简写?

我似乎找不到任何关于new []应该是什么的文档.从下面的例子看,它似乎是一个对象数组的简写

var json = new[] {
            new object[] {"20-Jun-2008", 200 },
            new object[] {"20-Jun-2009", 250 }
        };
Run Code Online (Sandbox Code Playgroud)

c# new-operator

6
推荐指数
2
解决办法
3179
查看次数