我有一个结合了连接和组的查询,但我遇到了问题.查询如下:
var result = from p in Products
join bp in BaseProducts on p.BaseProductId equals bp.Id
group p by p.SomeId into pg
select new ProductPriceMinMax {
SomeId = pg.FirstOrDefault().SomeId,
CountryCode = pg.FirstOrDefault().CountryCode,
MinPrice = pg.Min(m => m.Price),
MaxPrice = pg.Max(m => m.Price),
BaseProductName = bp.Name <------ can't use bp.
};
Run Code Online (Sandbox Code Playgroud)
如您所见,它将Products表与BaseProducts表连接,并在Product表的id上加入组.但是在生成的ProductPriceMinMax中,我还需要BaseProducts表的一个属性:bp.Name,但它不知道bp.
知道我做错了什么吗?
谢谢!
在WPF应用程序中集成本地(因此不是联机)帮助的可能方法是什么?它更像是手册,但我想以某种方式整合它.
编辑:刚刚找到http://wordtoxaml.codeplex.com,我会尝试那个.它将word文档转换为xaml,我可以在WPF中显示它.
编辑2:我找到了一个有效的解决方案:用word编写手册,另存为XPS,并使用https://web.archive.org/web/20111116005415/http://www.umutluoglu.com/english/post/显示一十二分之二千零八/ 20 /显示-XPS-文档与-的DocumentViewer -控制-在-WPF.aspx
我想生成一个字符串列表的所有可能组合的列表(它实际上是一个对象列表,但为了简单起见,我们将使用字符串).我需要这个列表,以便我可以在单元测试中测试每个可能的组合.
例如,如果我有一个列表:
var allValues = new List<string>() { "A1", "A2", "A3", "B1", "B2", "C1" }
Run Code Online (Sandbox Code Playgroud)
我需要一个List<List<string>>所有组合,如:
A1
A2
A3
B1
B2
C1
A1 A2
A1 A2 A3
A1 A2 A3 B1
A1 A2 A3 B1 B2
A1 A2 A3 B1 B2 C1
A1 A3
A1 A3 B1
etc...
Run Code Online (Sandbox Code Playgroud)
递归函数可能是获得所有组合的方法,但它似乎比我想象的更难.
有什么指针吗?
谢谢.
编辑:两个解决方案,有或没有递归:
public class CombinationGenerator<T>
{
public IEnumerable<List<T>> ProduceWithRecursion(List<T> allValues)
{
for (var i = 0; i < (1 << allValues.Count); i++)
{
yield return ConstructSetFromBits(i).Select(n => allValues[n]).ToList(); …Run Code Online (Sandbox Code Playgroud) 我正在考虑将CQS应用于我的ASP.NET MVC网站,但这只是一件非常简单的事情.我不是指CQRS,因为我想为查询和命令部分使用相同的数据源,因此我不需要事件源和其他更复杂的模式.
所以,我的想法是:
我想要实现的主要是:
这有意义吗?
对于我的项目,这是一个潜在的大型网站,我选择将命令界面与查询界面分开.因此,提交命令是单向操作,不会返回结果.这意味着客户端必须提供密钥,例如:
service.SubmitCommand(new AddUserCommand() { UserId = key, ... });
Run Code Online (Sandbox Code Playgroud)
显然我不能使用int作为主键,所以Guid是一个合乎逻辑的选择 - 除了我到处读到它对性能的影响,这让我感到害怕:)
但后来我也读到了关于COMB Guids,以及它们如何提供Guid的优势,同时仍然具有良好的性能.我还在这里找到了一个实现:Linq-to-Sql中的顺序GUID?.
所以在我做出这个重要决定之前:有人有这方面的经验吗?
非常感谢!
路德
这是一个真实的例子,它将引出我的问题:我有一个AddCommentToArticleCommand,它有一个ArticleId,评论文本和电子邮件地址.这个命令:
我应该像articleRepository.Save(文章)那样做吗?但是,如果只添加评论,为什么要保存文章呢?或者我可以做一些像articleRepository.SaveComment(评论),只会保存评论?或者你会采取什么方法?
谢谢!
我正在与同事讨论何时抛出错误以及何时不在WCF服务中抛出错误.
有一种观点认为,当服务操作由于某些错误而无法完成工作时,我们只会抛出错误; 由于它,某些东西可能处于无效状态.所以,举一些例子:
ValidateMember(字符串名称,字符串密码,字符串国家/地区) - >如果未传递强制参数,则会引发错误,因为验证本身无法执行; - >如果发生了一些内部错误就会抛出错误,比如数据库已关闭 - >会在所有其他情况下返回状态合同,指定验证结果(MemberValidated,WrongPassword,MemberNotKnown,...)
GetMember(int memberId) - >只会在出现故障时抛出错误,在所有其他情况下它会返回成员,如果没有找到则返回null
另一种意见是我们也应该在GetMember找不到该成员时抛出错误,或者在ValidateMember的情况下密码错误.
你怎么看?
似乎有很多方法可以在WPF应用程序中实现多种语言.但是我想了解一些关于我应该使用以下要求的方法的更多信息:
有人可以建议我如何实现这一目标吗?
谢谢!
我正在分析一个可能很大的网站,我有很多问题.
该网站将使用剃刀视图引擎在ASP.NET MVC 3中编写.在大多数示例中,我发现控制器直接使用底层数据库(使用域/存储库模式),因此中间没有WCF服务.我的第一个问题是:这个架构是否适合拥有大量流量的大型网站?总是可以对网站进行负载平衡,但这是一个好方法吗?或者我应该使网站使用与数据交互的WCF服务?
问题2:我想采用CQS原则,这意味着我想将查询与指挥部分分开.因此,这意味着查询部分将具有与命令部分不同的模型(针对视图进行优化)(针对业务意图进行优化并且仅包含完成命令所需的属性) - 但两者都作用于同一数据库.你认为这是个好主意吗?
感谢您的建议!
我有,比方说,这个简单的课程:
public class User
{
[Required(AllowEmptyStrings = false, ErrorMessage="EmailIsRequired"]
public string EmailAddress { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我知道如何在System.ComponentModel.DataAnnotations命名空间中使用Validator.TryValidateProperty和Validator.TryValidateObject.为了使其工作,您需要要验证的对象的实际实例.
但是现在,我想要在没有User类实例的情况下验证某个值,例如:
TryValidateValue(typeof(User), "EmailAddress", "test@test.com");
Run Code Online (Sandbox Code Playgroud)
我的目标是在实际必须实例化对象本身之前测试一个值(原因是我只允许创建有效的域实体).所以实际上我想在类而不是实例上使用验证属性.
有什么想法可以做到吗?
谢谢!
编辑:同时我决定不使用数据注释,而是使用http://fluentvalidation.codeplex.com,以便验证移出实体之外.这样,可以从实体内部以及我的命令处理程序中触发验证.由于流利的符号,验证本身看起来更具可读性.
c# validation domain-driven-design data-annotations asp.net-mvc-3
c# ×7
cqrs ×4
architecture ×2
wpf ×2
asp.net-mvc ×1
combinations ×1
command ×1
entity ×1
exception ×1
faults ×1
group-by ×1
guid ×1
join ×1
key ×1
linq ×1
linq-to-sql ×1
math ×1
multilingual ×1
performance ×1
prism ×1
repository ×1
validation ×1
wcf ×1