小编Tre*_*ink的帖子

如何从 LINQ to Entities 查询流式传输数据?

我想知道如何使用 EF6 从 SQL Server 流式传输数据。

假设有这些课程

  • 人员信息库
  • EFPerson(EF模型)
  • DomainPerson(领域模型)
  • PersonUsingClass

假设 PersonUsingClass 依赖于获取一堆 DomainPerson。假设业务规则规定不允许 EFPerson 离开 PersonRepository。

通常我会有一个如下所示的存储库方法:

    public IEnumerable<DomainPerson> GetPeople()
    {
        using (var db = new efContext())
        {
            IQueryable efPeople = db.Person.Where(someCriteria);

            foreach (var person in efPeople)
            {
                yield return person.ToDomainPerson();
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

使用我这里的代码,所有内容都会在执行 foreach 时加载到内存中。我可以通过将 IQueryable 返回到 PersonUsingClass 来实现流式处理,但这会将 EF 模型暴露给该类,这是一种不需要的情况。

难道真的不可能在流数据的同时隐藏 EF 模型吗?还是有什么我不知道的事情?

c# entity-framework-6

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

创建倒计时到目前为止C#

我想创建一个Windows窗体应用程序,它只显示一个计时器:

xx天xx小时xx分钟xx秒

  • 没有设置计时器或任何东西的选项,我想在代码中这样做但是,问题是我希望它从当前时间(DateTime.Now)倒计时到特定日期.所以我最终得到的时间是TimeSpan类型.我现在怀疑如何实际显示这个,所以它实际上工作,并更新(倒计时)似乎找不到帮助我的教程,所以我希望我可以在这里得到一些帮助:)

c# datetime timespan timer

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

Android XML - 没有换行符的 EditText 自动换行

我对 EditText 的属性有这个愚蠢且看似微不足道的问题。

我试图为 EditText 实现的属性如下:

  • 视图的内容不应包含换行符。它可以是文本、数字、符号,但不能是换行符。

  • 由于上述原因,软键盘不应显示输入按钮。它应该显示类似“发送”或“完成”的内容。

  • 当到达屏幕边缘时,视图的内容不应水平继续。相反,我想包装文本,将其显示在多行上。

我尝试了许多不同的组合,但我无法实现这种组合。

我目前拥有的是这个,它在一个RelativeLayout里面:

    <EditText
        android:id="@+id/comment_box"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:layout_below="@id/preparation_text"
        android:hint="@string/comment_hint"
        android:inputType="textCapSentences|textAutoCorrect|text"
        android:scrollHorizontally="false"
        android:maxLength="400"
        android:imeOptions="actionSend"/>
Run Code Online (Sandbox Code Playgroud)

它实现了 2 of 3。不可能换行,键盘显示“发送”而不是我的回车键,但文本继续在一行上。

更改inputType="text""textMultiLine"在多行上正确换行文本,但也会覆盖键盘以始终显示输入按钮。

我在 Internet 上尝试了不同的解决方案,包括设置属性maxLines="4"singleLine="true"以及可能我又忘记了的其他解决方案。

我找不到有效的组合。

xml android android-edittext

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

C#中的继承/类

我是C#的新手,正在努力理解课程和"是一种"关系.我一直试图让一段代码工作,但我似乎无法做到正确.

它看起来像这样:http://pastebin.com/cQDusptB

我有一个基类,哺乳动物,其中一个应该能够创建实例,给出哺乳动物的名称作为输入.我还有一个班,狗,这是一个哺乳动物.应该能够以与Mammal相同的方式创建此实例.

任何人都可以看到我的缺陷吗?如果是的话,你能解释我误解/忘记的内容吗?

c# inheritance class

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

使用WMP在C#中暂停/播放MP3文件

我再一次陷入练习中.当我打开我的程序时,我想要一个MP3文件播放 - 我能做到这一点,我得到了音乐.我还想要一个允许暂停音乐的复选框 - 但要么我很累,要么事情不起作用 - 当我检查/取消选中它时没有任何反应.我这样做了:

public void PlayPause(int Status)
     {
        WMPLib.WindowsMediaPlayer wmp = new WMPLib.WindowsMediaPlayer();
        switch (Status)
        {
            case 0:
                wmp.URL = "Musik.mp3";
                break;
            case 1:
                wmp.controls.play();
                break;
            case 2:
                wmp.controls.pause();
                break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

在打开程序时,使用案例0调用该方法.音乐播放.都好.然而,这不起作用,我不明白为什么,因为这是非常简单的代码.

        public void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        if (checkBox1.Checked == true)
        {
            PlayPause(2);
        }
        else if (checkBox1.Checked == false)
        {
            PlayPause(1);
        }
    }
Run Code Online (Sandbox Code Playgroud)

任何关于为什么选中复选框的想法都不会暂停/取消暂停音乐?

c# mp3 wmp

0
推荐指数
1
解决办法
6435
查看次数

方案 - 在if句中正确使用"和"

我目前正在Scheme中为一个作业编写一个小项目.我没有长时间使用Scheme,所以我对语法不够强.

问题是在if句中使用"和".我有一个日历中的约会列表,但我只想要在一定时间间隔之间的约会.因此,我需要检查开始和结束时间.

我希望实现的内容在C#中看起来像这样:

List<appointment> appointments = new List<appointment>();

    foreach (appointment app in calendar) {
        if(app.getstart() >= from-time && app.getend() <= to-time) {
            appoinments.add(app);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我目前在Scheme中拥有的是:

(define (time-calendar cal from-time to-time)
  (map (lambda (app)(if (> from-time (send 'getstart app)) #t #f))
         (send 'getappointments cal)))
Run Code Online (Sandbox Code Playgroud)

采用日历"cal"和时间间隔(从时间到时间)然后我从cal获得约会(app)并迭代它们.对于每个人,我检查时间是否大于"app"的开始时间.相应地返回true或false.这很有效,但我仍然需要考虑约会是否也在"准时"之前结束.这应该是添加另一个条件的简单问题,但我根本无法使其工作.

任何人都可以帮助我检查第二个变量的正确语法吗?我知道关于Racket文档,但我仍然无法解决我的问题.

我尝试更换cond的if句子.

我也尝试了一些"and"部分的变体,与此类似,但无法正确使用语法:

(define (time-calendar cal from-time to-time)
  (map (lambda (app)(if (and((> from-time (send 'getstart app))) (< to-time (send 'getend app))) #t #f))
         (send 'getappointments cal)))
Run Code Online (Sandbox Code Playgroud)

scheme if-statement conditional-statements racket

0
推荐指数
1
解决办法
75
查看次数