小编Sep*_*eph的帖子

防止更改String.Empty的值

部分来自好奇的破坏事物的观点,部分来自对潜在问题的保护.想象一下,通过调用以下内容可以发生的最坏情况(或者类似的东西,但这string.Empty是一个很好的例子):

typeof(String).GetField("Empty", 
    BindingFlags.Public | 
    BindingFlags.NonPublic | 
    BindingFlags.Static | 
    BindingFlags.GetField
).SetValue(null, "foo" );
Run Code Online (Sandbox Code Playgroud)

当某些代码存在时,这会导致问题x = myClass.bar ?? string.Empty.

是否有任何方法(类似于不同的应用程序域或类似)来防止(或检测)某些人更改String.Empty或者可能是SqlDateTime.MinValue(或.NET中的其他类似只读字段)的值?

.net c# reflection

9
推荐指数
1
解决办法
2101
查看次数

LINQ to SQL:针对订购系统的多个表的报告的汇总数据的复杂查询

我想将以下查询转换为LINQ语法.我在设法让它发挥作用方面遇到了很多麻烦.我实际上尝试从LINQ开始,但发现如果我以相反的方式编写它,我可能会有更好的运气.

SELECT
    pmt.guid,
    pmt.sku,
    pmt.name,
    opt.color,
    opt.size,
    SUM(opt.qty) AS qtySold,
    SUM(opt.qty * opt.itemprice) AS totalSales,
    COUNT(omt.guid) AS betweenOrders
FROM
    products_mainTable pmt 
        LEFT OUTER JOIN 
            orders_productsTable opt ON opt.products_mainTableGUID = pmt.guid
            LEFT OUTER JOIN orders_mainTable omt ON omt.guid = opt.orders_mainTableGUID AND
                (omt.flags & 1) = 1
GROUP BY
    pmt.sku, opt.color, opt.size, pmt.guid, pmt.name
ORDER BY
    pmt.sku
Run Code Online (Sandbox Code Playgroud)

最终结果是一个表格,向您显示有关产品的信息,如上所示.如何使用理解语法以LINQ格式编写此查询?

另外,我可能想要添加其他过滤器(例如,对orders_mainTable).

这是我尝试工作的一个例子,并且非常接近但不确定它是否是"正确"方式,并且无法按照orders_productsTable的大小和颜色对其进行分组.

from pmt in products_mainTable
let Purchases = 
        from opt in pmt.orders_productsTable
        where ((opt.orders_mainTable.flags & 1) == 1)
        where ((opt.orders_mainTable.date_completedon > Convert.ToDateTime("01/01/2009 00:00:00"))) …
Run Code Online (Sandbox Code Playgroud)

c# linq grouping aggregate-functions linq-to-sql

8
推荐指数
2
解决办法
8464
查看次数

关注点分离 - DAO,DTO和BO

所以我有一个DAO,DTO和BO.以下代码是结果:

// Instantiate a new user repository.
UserRepository rep = new UserRepository();

// Retrieve user by ID (returns DTO) and convert to business object.
User user = rep.GetById(32).ToBusiness<User>();

// Perform business logic.
user.ResetPassword();
user.OtherBusinessLogic("test");
user.FirstName = "Bob";

// Convert business object back to a DTO to save to the database.
rep.Save(user.ToDataTransfer<Data.DTO.User>());
Run Code Online (Sandbox Code Playgroud)

所以我试图分开关注点,但我想摆脱这段代码中的"转换"."转换"实际上位于业务逻辑层(DTO层不知道业务逻辑层)作为扩展对象.DTO本身显然只存储数据,并且没有任何业务逻辑.UserRepository调用DAO,在GetById结束时使用AutoMapper从DAO映射到DTO."转换"(ToBusiness和ToDataTransfer)完全按照他们的说法行事.

我的一位同事认为我可能需要有一个商业资源库,但认为它可能有点笨重.有什么想法吗?

.net c# java domain-driven-design business-objects

8
推荐指数
2
解决办法
6628
查看次数

OAuth简单服务提供商

我正在努力挑选出包含在DotNetOpenAuth中的OAuth服务提供商示例.我搜索了SO并发现了一些相似/相关的帖子,但没有什么真正有用的.是否有任何开源项目或ASP.NET MVC 2 OAuth服务提供商的简单/原始示例?我想使用OAuth的所有内容都是对服务进行身份验证.我打算用密钥/秘密来推销我自己的api,但是认为像OAuth这样经过试验和测试的协议可能是更好的解决方案.

.net c# api oauth dotnetopenauth

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

C#实体FrameWork MySQL慢查询计数()

我遇到了MySQL和Entity Framework 4.0的严重问题.我已将表格放到EF Designer表面上,一切似乎都没问题.但是,当我以下列方式执行查询时:

using(entityContext dc = new entityContext()) {
  int numRows = dc.myTable.Count();
}
Run Code Online (Sandbox Code Playgroud)

生成的查询看起来像这样:

SELECT `GroupBy1`.`A1` AS `C1`
FROM   (SELECT Count(1) AS `A1`
        FROM   (SELECT `pricing table`.`a`,
                       `pricing table`.`b`,
                       `pricing table`.`c`,
                       `pricing table`.`d`,
                       `pricing table`.`e`,
                       `pricing table`.`f`,
                       `pricing table`.`g`,
                       `pricing table`.`h`,
                       `pricing table`.`i`
                FROM   `pricing table` AS `pricing table`) AS `Extent1`) AS `GroupBy1`
Run Code Online (Sandbox Code Playgroud)

显而易见,这是一个令人难以置信的未经优化的查询.它正在选择每一行!这不是最佳的,我甚至不可能在此时使用MySQL + EF.

我已经尝试了MySQL 6.3.1 [安装很有趣]和DevArt的dotConnect for MySQL,两者都产生了相同的结果.这张表有150万条记录......需要6-11秒才能执行!

我究竟做错了什么 ?有没有办法优化这个[和其他查询]来生成合理的代码,如:

SELECT COUNT(*) FROM table
Run Code Online (Sandbox Code Playgroud)

使用SQLServer生成相同的查询几乎没有时间,并生成合理的代码.

救命!

编辑:我还想指出,我切换到DevArt dotConnect MySQL LINQ to SQL驱动程序,并使用L2S over EF快1000000倍.这也包括查询. …

c# mysql entity-framework

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

Visual Studio 查找并替换所有引用

使用 Visual Studio (2010) 有什么方法可以Find All ReferencesReplace All功能相结合。

我继承了由 VB6 程序员编写的 VB.NET 代码,并且我想删除对IIFVB6 函数和许多其他 VB6 函数的所有引用,因为它们会导致一些问题。

CodeRush 或 Resharper 是否支持此功能?如果他们这样做的话,我似乎找不到任何关于它的文档。

有些功能我可以通过正常方式删除find and replace,但其他功能则更难为其构建正则表达式。

我尝试删除对 Microsoft.VisualBasic.dll 的引用,但错误数量非常大(只是为创建的每个新类复制粘贴代码)

coding-style legacy-code visual-studio-2010 vb6-migration visual-studio

7
推荐指数
0
解决办法
9654
查看次数

MVC RESTful设计

MVC必须是RESTful吗?

有没有办法SOAP使用MVC模式进行服务?

输入请求是否实际进入第View一个然后进入Controller当时的Model例如:

Request -> View -> Controller -> Model
Run Code Online (Sandbox Code Playgroud)

但这样做,不再是MVC模式.(那是对的不是吗?)

我们如何使用SOAP但仍然坚持(或接近)MVC模式的类型响应.相反,MVVM会更适合这种情况吗?

.net rest model-view-controller wcf soap

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

使用规则将字符串转换为树表示

我要做一些简单的RTF文本解析,我需要纠正一个问题.给出以下字符串:

{aaaaaaa\}aaaa\{aaaaa{bbbbbbbb{ccccc\{cccc}bbb{eeeee}{{gggg}ffff}bbbbbb}aaaaa}
Run Code Online (Sandbox Code Playgroud)

哪里:

\ means ignore next character
{ means expand
} means collapse up to parent
Run Code Online (Sandbox Code Playgroud)

在字符串中的任何位置,除了封闭标签中的字符之外,状态可能会受到任何前一个字符的影响.例如{gggg}不会影响ffff,但aaaaaaa aaa ..会影响bbbb, ccc, eee, ggg, fff等等.

由此我们可以将上面的内容拆分为有意义的块

A1 = aaaaaaa\}aaaa\{aaaaa
B1 = bbbbbbbb
C = ccccc\{cccc
B2 = bbb
E = eeeee
G = gggg
F = ffff
B3 = bbbbbb
A2 = aaaaa
Run Code Online (Sandbox Code Playgroud)

产量:

{A1{B1{C}B2{E}{{G}F}B3}A2}
Run Code Online (Sandbox Code Playgroud)

为了描述我使用的依赖关系X> Y意味着Y依赖于X(如在X中可能改变Y的含义)

A1
A1 > B1
A1 > B1 > C
A1 > B1 > B2
A1 > B1 > B2 > E
A1 …
Run Code Online (Sandbox Code Playgroud)

.net c# algorithm data-structures

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

在项目中查找dll的所有引用

在Visual Studio 2010(或2012)中,有一种方法可以在代码中找到提及引用的dll中定义的任何类/方法的所有引用.

目前我使用了两个进程(取决于具体情况):

  • 第一个涉及从项目中删除dll引用,然后记下所有构建错误位置.
  • 另一种方法是打开引用Object Browser然后扩展到它的命名空间,并且对于每个命名空间我进行手动搜索,但这并不总是有助于查找所有引用,并且因为遗留代码具有跨越多个程序集的相同名称空间,所以过滤掉很多噪音.

这些都不是真正理想的解决方案,有没有更简单的方法呢?也许是通过VS扩展.

visual-studio dll-reference

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

存储销售税信息的最佳方式

在设计用于销售和购买的库存管理数据库系统时,存储各种税收和其他此类金额的最佳方式是什么?

可以保存的一些字段是:

  • 单价不含税
  • 单价包含税
  • 每件税
  • 不含税总额(四舍五入到小数点后两位)
  • 包含税的总额(四舍五入到小数点后两位)
  • 总税额(四舍五入到小数点后两位)
  • 税收百分比
  • Fk链接到Tax%(而不是存储税额)

目前,迄今为止最合理的解决方案是存储(大致)项目,数量,不含税总额(四舍五入)和总税额(四舍五入).

是否有更好的方法来存储通用系统的这些细节?

鉴于系统需要稳健,如果有多个税收价值可能需要分开(例如州和市),应该怎么办?在这种情况下,一个单独的表将按顺序排列,但只有一个rowID和一些taxID映射到totalTax列会被认为是多余的吗?

澄清:询问如何存储有关个别交易及该方面的数据; 关于税收特定税率的详细信息.

sql database-design

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