小编gh9*_*gh9的帖子

vb lambda MAX函数

我使用MAX lambda表达式的vb等效问题.在foos.Max(function(x)x.id) 当我尝试intellisense时,属性ID VS将不会显示它.但是,当我运行这个例子时,它可行.我在做什么是错的,我很幸运它运行?

 Sub Main()
        Dim foos As New List(Of Foo)
        Dim bob As New Foo() With {.id = 5, .name = "bob"}
        foos.Add(bob)
        foos.Max(Function(x) x.id)
    End Sub

    Public Class Foo
        Public Property id() As Integer
            Get
                Return m_id
            End Get
            Set(ByVal value As Integer)
                m_id = Value
            End Set
        End Property
        Private m_id As Integer
        Public Property name() As String
            Get
                Return m_name
            End Get
            Set(ByVal value As String)
                m_name = Value
            End Set
        End Property …
Run Code Online (Sandbox Code Playgroud)

vb.net lambda

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

Date对象与DateTime对象

我目前正在查看日期和日期时间对象的msdn页面.我也打开了反射器,看起来日期和日期时间对象只是引用了日期结构.为什么我们有两个引用相同结构的对象?它们之间有什么区别?

.net c# datetime

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

实体框架对象比较

我在实体框架4.0中比较对象时遇到了麻烦.谷歌搜索了一段时间后,我在2008年发现了一篇博文,其中说明了我的问题是什么以及为什么会发生这个问题.博客文章深入描述了我的问题.

总结一下博客文章,你根本无法与EF框架进行自定义对象比较.例如

public Foo
{
public int ID{get;set;}
public string Name {get;set;}
//I overrode the .Equals AND the == operator
}

public getFoo(Foo target)
{
   DC.foos.FirstOrDefault(x => x == target);
}
Run Code Online (Sandbox Code Playgroud)

System.NotSupportedException:无法创建类型为'Foo'的常量值在此上下文中仅支持基本类型(如Int32,String和Guid').

这是根据MicroSoft 的设计.

如果我做一些神奇的界面或魔术超载,有人能指出我是否支持这种对象比较? 非常感谢你!

c# entity-framework

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

SQL Server和类型的隐式转换

SQL Server在哪里进行隐式转换,它遵循的规则是什么?IE什么时候在右侧转换相等运算符的左侧?

Foobar
id int not null 
quantity int not null
quantityTest byte not null
date varchar(20) not null
dateTest datetime
SELECT id
FROM Foobar
WHERE quantity > '3'

SELECT id
FROM foobar
WHERE quantityTest > 3

Select id
FROM foobar
WHERE date = 20120101
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

VB将字符串设置为空

当我预期它返回FALSE时,下面的代码返回TRUE.

为什么它返回TRUE?我期望没有什么可以将字符串的值设置为null,而不是空(根据msdn)

CodeingGround示例

Module VBModule

    Sub Main()
        dim x as String
        x = nothing
        console.writeline(x = string.Empty)
    End Sub

End Module
Run Code Online (Sandbox Code Playgroud)

什么都没有(Visual Basic)

表示任何数据类型的默认值.对于引用类型,默认值为空引用.

***编辑**** Nothing = String.Empty(为什么这些相等?)

VB.net中没有任何内容是类型的默认值.语言规范在2.4.7节中说明:

没有什么是特殊的文字; 它没有类型,可以转换为类型系统中的所有类型,包括类型参数.转换为特定类型时,它等效于该类型的默认值.

因此,当您对String.Empty进行测试时,Nothing将转换为长度为0的字符串.Is运算符应该用于测试Nothing,而String.Empty.Equals(Nothing)也将返回false.

那时评论,

转换为特定类型时,它等效于该类型的默认值.

字符串的默认值为null.我不明白为什么这个答案被接受了.

vb.net

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

转发器控制导致无效的回发或回调参数

我已经阅读了许多与我的情况相关的问题,但我没有找到一个.我目前有一个带有4个绑定项目的转发器,点击转发器中的按钮导致我的错误,下面是标记和代码隐藏.有人可以向我解释为什么会发生这种情况并解决它吗?(我已经排除了页面的删除,只是包含了page_load事件.请告诉我是否应该剪切并过去完整的代码)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title></title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:Repeater ID="rptFoo" runat="server">
      <ItemTemplate>
        <asp:Button ID="btnfoo" runat="server" />
      </ItemTemplate>
    </asp:Repeater>
  </div>
  </form>
</body>
</html>

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim items As New List(Of String)
items.Add("test1")
items.Add("test2")
items.Add("test3")
items.Add("test4")
rptFoo.DataSource = items
rptFoo.DataBind()
End Sub
Run Code Online (Sandbox Code Playgroud)

vb.net

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

EF IsModified = false 仍在更新基础列

我有一个处于分离状态的实体。实体上有 2 个字段我不想更新。我将其 IsModfied 设置为 false,但 SQL SERVER 中的属性仍在更新。如何强制这些列不更新 SQL SERVER?

if (Context.Entry(updatedFoo).State == EntityState.Detached)
{
   var oldEntity = Context.Foo.Find(updatedFoo.FooId);
   Context.Entry(oldEntity).Property(x => x.createdUserId).IsModified = false;
   Context.Entry(oldEntity).Property(x => x.createDateTime).IsModified = false;
   Context.Entry(oldEntity).CurrentValues.SetValues(updatedSaving);
   Context.Entry(oldEntity).State = EntityState.Modified;
}
Run Code Online (Sandbox Code Playgroud)

******编辑*****

将 EntityState 设置为“modified”会覆盖之前设置的所有属性级别状态。

如果您将状态设置为已修改,然后设置列上的各个属性,您将收到以下错误

附加信息:不支持将已修改属性的 IsModified 设置为 false

c# entity-framework

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

Angular使用根范围与服务共享数据

我一直在阅读wrox角书.在本书中,作者描述了一种在控制器之间共享数据的方法

  1. 在根范围上有一个属性
  2. 更新根作用域上的该属性
  3. 广播该属性已更新的事实
  4. 所有需要知道的儿童瞄准镜都会收听广播.

而不是在服务上暴露一个对象,让角度的双向数据绑定完成所有繁重的工作.为什么有人会采用"根范围发布/订阅"方法,而不是在服务上公开对象?

javascript angularjs

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

Redis 集群在 master 失败时不会将 Slave 提升为 master

我在 Windows 2012 机器上运行 4 节点 REDIS CLUSTER。

我的设置是1个主和3个从。当我通过服务组件结束主服务时,我的奴隶都没有自动将自己提升为主服务。我如何让奴隶认识到主人失败并让他们在看到失败后立即晋升。下面是我的Redis配置。这是所有节点的相同配置文件,唯一的区别是每个节点的端口都改变了

port 30002 cluster-enabled yes cluster-config-file nodes.conf appendonly yes loglevel notice logfile "log" syslog-enabled yes syslog-ident redis maxmemory 200mb maxmemory-policy volatile-ttl

编辑

我需要提供哪些其他信息才能更轻松地帮助修复。

编辑 2

我的最终游戏是一个 redis 集群,我希望这个集群有 1 个主节点和 3 个从节点。我想要一个具有 1 个主站和 3 个从站的集群的原因是,我想避免安装 REDIS Sentinel。我希望集群将奴隶提升为主人,而不是 redis 哨兵这样做。

我的安装过程如下

  • 创建 4 个文件夹(A、B、C、D)
  • 在每个文件夹中复制 REDIS 64 msi for windows
  • 在文件夹 A、B、C、D 中放入一个配置文件,就像上面的那个,但端口不同
  • 使用文件夹 A、B、C、D 安装 redis 服务
  • 启动所有服务
  • 为文件夹 A、B、C、D 做 Redis 聚会
  • 将文件夹 A 的复制添加到文件夹 B、C、D
  • 将所有键分配给文件夹 A 上的 redis …

redis

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

使用* ngIf的Angular6 AutoFocus

<div class="dropdownContainer" placeholder="test" (click)="ShowDropDown()"  />

<div #tref *ngIf="showDropDown == 1" class="dropdownList" (focusout)="HideDropDown()" style="border:1px solid black;" >this is my test</div>
Run Code Online (Sandbox Code Playgroud)

单击dropDownContainer后,我希望出现dropdownList并将焦点放在上面。

我曾尝试使用

  @ViewChild("tref", {read: ElementRef}) tref: ElementRef; 
Run Code Online (Sandbox Code Playgroud)

方法,但是它返回undefined,因为在div单击上面的元素之前,该元素在DOM中不存在。如何自动聚焦于动态NON INPUT DOM对象?

编辑根据建议更新了我的代码,这仍然不会自动关注div。

  @ViewChild("tref") tref: ElementRef;
      ShowDropDown() {
      this.showDropDown = 1;
      this.tref.nativeElement.focus();
      console.log(this.tref);
  }
HideDropDown(){
  console.log('test out')
  this.showDropDown = 0;
}



<input   #tref class="dropdownContainer" placeholder="george" (click)="ShowDropDown()"  />
<div tabindex="-1" (focusout)="HideDropDown()" [hidden]="showDropDown == 0" class="dropdownList"  style="border:1px solid black;" >this is my test</div>
Run Code Online (Sandbox Code Playgroud)

问题的 答案有两个答案。

1)DIVS除非具有tabindex,否则不能具有焦点。堆叠答案

2)我需要包括,setTimeout(() => this.tref.nativeElement.focus(), …

angular

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