小编Rya*_*yan的帖子

使用LINQ和C#的随机数组

我正在阅读MSDN杂志上关于在LINQ中使用Enumerable类生成随机数组的文章.本文使用VB.NET,我不能立即确定C#中的等价物是什么:

Dim rnd As New System.Random()
Dim numbers = Enumerable.Range(1, 100). _
    OrderBy(Function() rnd.Next)
Run Code Online (Sandbox Code Playgroud)

c# linq vb.net enumerable

11
推荐指数
3
解决办法
1万
查看次数

关于左外连接和Where条件的SQL标准

基于我放置过滤条件的位置,查询中的过滤条件会得到不同的结果.我的问题是:

  • 这些查询之间是否存在技术差异?
  • SQL标准中是否有任何内容可以解释查询中的不同记录集?

鉴于简化的方案:

--Table: Parent  Columns: ID, Name, Description
--Table: Child   Columns: ID, ParentID, Name, Description

--Query 1
SELECT p.ID, p.Name, p.Description, c.ID, c.Name, c.Description
FROM   Parent p
   LEFT OUTER JOIN Child c ON (p.ID = c.ParentID)
WHERE  c.ID IS NULL OR c.Description = 'FilterCondition'

--Query 2
SELECT p.ID, p.Name, p.Description, c.ID, c.Name, c.Description
FROM   Parent p
   LEFT OUTER JOIN Child c
   ON (p.ID = c.ParentID AND c.Description = 'FilterCondition')
Run Code Online (Sandbox Code Playgroud)

我假设查询将返回相同的结果集,当他们没有时,我感到很惊讶.我正在使用MS SQL2005并且在实际查询中,查询1返回~700行,查询2返回~1100行,我无法检测返回行和排除哪些行的模式.查询1中仍有许多行,子行包含数据和NULL数据.我更喜欢查询2的样式(我认为它更优),但我认为查询会返回相同的结果.

编辑/概述:

这里提供了一些很棒的答案.我很难选择给谁答案.我决定选择mdma,因为它是第一个答案,也是最清晰的答案之一.根据提供的答案,这是我的总结:

可能的结果:

  • 答:父母没有孩子
  • B:有孩子的父母
  • | - …

sql left-join

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

将派生的ViewModel映射到Caliburn.Micro中的基类View

我有一个基本的ViewModel和相关的View.我还从基础ViewModel中获得了多个派生的ViewModel,但我想使用基本View进行显示.

基本ViewModel和View:

  • VM: MyCompany.MyApp.Modules.Wizard.ViewModels.WizardViewModel
  • 大众: MyCompany.MyApp.Modules.Wizard.Views.WizardView

来源于WizardViewModel:

  • VM: MyCompany.MyApp.Modules.NewSpec.ViewModels.NewSpecViewModel : WizardViewModel
  • vw :(映射到MyCompany.MyApp.Modules.Wizard.Views.WizardView)

  • VM: MyCompany.MyApp.Modules.NewSpec.ViewModels.NewMaterialViewModel : WizardViewModel

  • vw :(映射到MyCompany.MyApp.Modules.Wizard.Views.WizardView)

我认为这应该可以使用ViewLocator或ViewModelLocatorNameTransformer中的映射,但我还没有想到它.

我正在使用Gemini FrameworkCaliburn.Micro v1.5.2(我打算很快升级到v2).

这是我尝试过的一件事:

public class NewSpecViewModel : WizardViewModel
{
    // ...
    static NewSpecViewModel()
    {
        // Escape the '.' for the regular expression
        string nsSource = typeof(NewSpecViewModel).FullName.Replace(".", @"\.");
        string nsTarget = typeof(WizardViewModel).FullName;
        nsTarget = nsTarget.Replace("WizardViewModel", "Wizard");
        // nsSource = "MyCompany\\.MyApp\\.Modules\\.NewSpec\\.ViewModels\\.NewSpecViewModel"
        // nsTarget = "MyCompany.MyApp.Modules.Wizard.ViewModels.Wizard"
        ViewLocator.AddTypeMapping(nsSource, null, nsTarget); …
Run Code Online (Sandbox Code Playgroud)

c# wpf mvvm caliburn.micro

5
推荐指数
1
解决办法
1206
查看次数

标签 统计

c# ×2

caliburn.micro ×1

enumerable ×1

left-join ×1

linq ×1

mvvm ×1

sql ×1

vb.net ×1

wpf ×1