部分来自好奇的破坏事物的观点,部分来自对潜在问题的保护.想象一下,通过调用以下内容可以发生的最坏情况(或者类似的东西,但这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中的其他类似只读字段)的值?
我想将以下查询转换为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) 所以我有一个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)完全按照他们的说法行事.
我的一位同事认为我可能需要有一个商业资源库,但认为它可能有点笨重.有什么想法吗?
我正在努力挑选出包含在DotNetOpenAuth中的OAuth服务提供商示例.我搜索了SO并发现了一些相似/相关的帖子,但没有什么真正有用的.是否有任何开源项目或ASP.NET MVC 2 OAuth服务提供商的简单/原始示例?我想使用OAuth的所有内容都是对服务进行身份验证.我打算用密钥/秘密来推销我自己的api,但是认为像OAuth这样经过试验和测试的协议可能是更好的解决方案.
我遇到了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倍.这也包括查询. …
使用 Visual Studio (2010) 有什么方法可以Find All References与Replace 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
MVC必须是RESTful吗?
有没有办法SOAP使用MVC模式进行服务?
输入请求是否实际进入第View一个然后进入Controller当时的Model例如:
Request -> View -> Controller -> Model
Run Code Online (Sandbox Code Playgroud)
但这样做,不再是MVC模式.(那是对的不是吗?)
我们如何使用SOAP但仍然坚持(或接近)MVC模式的类型响应.相反,MVVM会更适合这种情况吗?
我要做一些简单的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) 在Visual Studio 2010(或2012)中,有一种方法可以在代码中找到提及引用的dll中定义的任何类/方法的所有引用.
目前我使用了两个进程(取决于具体情况):
Object Browser然后扩展到它的命名空间,并且对于每个命名空间我进行手动搜索,但这并不总是有助于查找所有引用,并且因为遗留代码具有跨越多个程序集的相同名称空间,所以过滤掉很多噪音.这些都不是真正理想的解决方案,有没有更简单的方法呢?也许是通过VS扩展.
在设计用于销售和购买的库存管理数据库系统时,存储各种税收和其他此类金额的最佳方式是什么?
可以保存的一些字段是:
目前,迄今为止最合理的解决方案是存储(大致)项目,数量,不含税总额(四舍五入)和总税额(四舍五入).
是否有更好的方法来存储通用系统的这些细节?
鉴于系统需要稳健,如果有多个税收价值可能需要分开(例如州和市),应该怎么办?在这种情况下,一个单独的表将按顺序排列,但只有一个rowID和一些taxID映射到totalTax列会被认为是多余的吗?
澄清:询问如何存储有关个别交易及该方面的数据; 关于税收特定税率的详细信息.
c# ×6
.net ×5
algorithm ×1
api ×1
coding-style ×1
grouping ×1
java ×1
legacy-code ×1
linq ×1
linq-to-sql ×1
mysql ×1
oauth ×1
reflection ×1
rest ×1
soap ×1
sql ×1
wcf ×1