小编Mik*_*yev的帖子

Fluent验证确保列表至少有一个属性值为somevalue的项目

假设我有以下viewmodel:

public class TaskViewModel{
  public MTask Task {get;set;}
  public List<DocIdentifier> Documents {get;set;}
  .....
}

public class DocIdentifier{
  public string DocID {get;set;}
  public bool Selected {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

这是Fluent Validation我使用的验证器:

public class TaskValidator : AbstractValidator<TaskViewModel>{
   public TaskValidator{

   }
}
Run Code Online (Sandbox Code Playgroud)

如何确保列表中至少有一个DocIdentifier对象Documents具有其Selected属性值True

asp.net-mvc fluentvalidation

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

在ASP.NET中使用Session对象

我刚刚接到一个新任务来引导由其他人创建的网站.但我绝对是网络新手.该网站是在ASP.NET,C#中.除了Session对象之外,代码本身并不难理解.我不明白它的使用位置,方式和原因.请问有人用可能的例子解释Session对象的用法吗?

PS这两行是什么意思?

    lblPensValue.Text = sh.pensDec((string)Session["connSTR"], 113, 23);
and
    if ((string)Session["connSTR"] == null)
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net session

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

Oracle to_number函数参数

我在使用TO_NUMBER函数第二个和第三个参数时遇到问题.其中一个是否依赖另一个?nls_params参数如何工作?我无法理解查询的结果如何

SELECT TO_NUMBER('17.000,23', 
             '999G999D99', 
             'nls_numeric_characters='',.'' ')  
             REFORMATTED_NUMBER 
FROM   DUAL; 
Run Code Online (Sandbox Code Playgroud)

可以是17000.23.有人可以解释上述转换的过程.

PS上述查询来自Oracle数据库SQL专家证书准备手册.

oracle function

4
推荐指数
1
解决办法
3561
查看次数

将所有列单位从字节更改为char

我已经获得了将MS SQL Server中的大型数据库转换为Oracle的任务。该数据库有150多个表,这些表具有许多存储过程和触发器,其中包含许多约束,默认值和关系。现在我想知道两件事:

  1. 一般如何做?我们是否必须为每个对象一个接一个地手动进行操作,或者有更好的方法?
  2. 默认情况下,Oracle中的字符串列以字节为单位创建。如何更新所有表中从字节到字符的所有列?

提前致谢。

sql-server oracle

4
推荐指数
2
解决办法
2498
查看次数

尽管Oracle.DataAccess.dll存在,但无法找到它

当我在IIS 7.5(Windows Server 2008 R2 x64)上浏览Visual Studio 2008中开发的ASP.Net应用程序时,我收到配置错误,指出无法找到Oracle.DataAccess,Version = 2.111.7.20文件.我已经安装了包含该文件的Oracle Data Provider for .NET.当我设置ODP.net时,它将dll文件放入c:\ app ....\odp.net\PublisherPolicy文件夹.我只是将这些文件复制到C:\ Windows\Microsoft\Framework文件夹,但我仍然得到了同样的错误.有人可以帮我解决这个问题吗?任何帮助是极大的赞赏

asp.net oracle

4
推荐指数
1
解决办法
7998
查看次数

如何使RequiredAttribute与枚举字段一起使用

我最近意识到RequiredAttribute不适用于枚举字段.假设我在表单上有两个名为ddlOfficers和ddlApplicationTypes的选择元素,这些元素都是在HtmlHelper方法的帮助下渲染的.创建ddlOfficers的辅助方法如下:

 @Html.DropDownListFor(x => x.OfficerID, Model.Officers, "<Choose>", new { id = "ddlAddressedOfficer" })
Run Code Online (Sandbox Code Playgroud)

WhereID是一个 Nullable<int>

对于ddlApplicationTypes,我必须编写一个扩展方法,让我为枚举字段创建下拉列表:

 @Html.EnumDropDownListFor(x => x.ApplicationType, new { @class = "select-normal" })
Run Code Online (Sandbox Code Playgroud)

其中ApplicationType的类型为自定义枚举,称为AppType

  public Enum AppType{
     None=0,
     Complaint,
     Query,
     Suggestion
  }
Run Code Online (Sandbox Code Playgroud)

我使用RequiredAttribute修饰了OfficerID和ApplicationType属性.当我没有在ddlOfficers上选择任何内容时,我会在提交时收到验证警告.但是当我没有在ddlApplicationType上选择任何内容时,我没有收到任何警告.我可能知道问题的原因:如果我比较两个选择元素,我可以看到ddlOfficers的第一个选项(选择)没有指定值,选中后会导致验证抱怨.但是ddlApplicationType的第一个选项的值为"None".因此,验证引擎会看到所选选项具有值并且只是忽略它.你有什么建议让它工作?

编辑:为了使事情更清楚,这里看到的是两个选择元素的html:

<select class="select-normal input-validation-error" data-val="true"  data-val-required="Choose the addressed officer" id="ddlOfficers" name="OfficerID">
   <option value="">&lt;Choose&gt;</option>
   <option value="1">Ben Martin</option>
   <option value="2">Nick Carter</option>
   <option value="3">Sebastian Van</option>
</select>

<select class="select-normal valid" data-val="true" data-val-required="Select the application type" id="ddlApplicationType" name="ApplicationType">
   <option selected="selected" value="None">&lt;Choose&gt;</option>
   <option value="Complaint">Complaint</option>
   <option value="Query">Query</option>
   <option value="Suggestion">Suggestion</option>
</select>
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc enums requiredfieldvalidator

4
推荐指数
1
解决办法
3980
查看次数

我怎么能对文字字符串参数设置约束

我不得不说标题太差了,无法描述问题,但这是我唯一能想到的.无论如何,假设我得到了以下枚举:

public enum DocumentType{
      IdCard=0,
      Passport,
      DriversLicense
}
Run Code Online (Sandbox Code Playgroud)

我有一个方法接受一个字符串并返回上面的枚举:

public DocumentType GetDocTypeByString(string docType){
    switch (docType)
    {
       case "ID":
         return DocumentType.IdCard;
       case "PASS"
         return DocumentType.Passport;
       //and so on
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果传递的字符串不符合任何切换条件怎么办?最愚蠢的事情是制作返回类型对象,但这是某些人几乎不会做的事情.如果enum是我的,我会添加一个名为"None"的附加值,并在没有匹配的情况下返回,但我无法控制它.然后我想,是否可以将输入约束到某些值.就C#而言,我几乎完全相信它是不可能的,但无论如何我决定问.在这种情况下你会推荐吗?

c# constraints parameter-passing

4
推荐指数
1
解决办法
95
查看次数

如何正确地对从 FTP 服务器获取文件的类进行单元测试

其实我的问题分为两部分。

  1. 如何将我的测试与外部隔离,但仍确保该功能有效?
  2. 如何使用 Mockito 模拟 apache commons FtpClient 类?当我嘲笑它时,我在以下位置获得空值:

InputStream inputStream = ftpClient.retrieveFileStream(ftpParameters.getSourceFileName());

这是测试类:

public class SimpleFtpFileImporterTest {
   FtpParameters ftpParams =new FtpParameters();
   SimpleFtpFileImporter fileImporter=new SimpleFtpFileImporter();
   FTPClient ftpMock= mock(FTPClient.class);



@Before
public void startup(){
    this.ftpParams.setServer("10.0.206.126");
    this.ftpParams.setPort(21);
    this.ftpParams.setUserName("mikola");
    this.ftpParams.setPassword("password");
    this.ftpParams.setSourceFileName("readme.txt");
}


@Test
public void returnNullWhenFileCouldNotBeFetchedCompletely() throws IOException{
    when(ftpMock.completePendingCommand()).thenReturn(false);
    fileImporter=new SimpleFtpFileImporter(ftpMock);
    byte[] bytes= fileImporter.downloadFile(ftpParams);
    assertNull(bytes);
}

}
Run Code Online (Sandbox Code Playgroud)

这是被测系统:

public class SimpleFtpFileImporter implements IFileImporter {

private FTPClient ftpClient;

static Logger logger = Logger.getLogger(SimpleFtpFileImporter.class);

static {
    PropertyConfigurator.configure("config/log4j.properties");
}

/**
 * Creates a SimpleFtpFileImporter class instance passing …
Run Code Online (Sandbox Code Playgroud)

junit ftp-client mockito

4
推荐指数
1
解决办法
5530
查看次数

为什么地址栏不可编辑?

有时在网站中,当您点击某个链接时,会出现一个新的浏览器窗口,其中没有后退按钮且地址栏不可编辑,它被锁定(灰色),因此您无法更改URL.只是一个包含一些信息或文本框的框,用于输入数据.我想知道为什么.这是因为某些安全问题还是还有其他问题?

browser address-bar

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

在达到MAXVALUE后,序列从1开始,甚至是指定的100

我遇到了一个非常奇怪的Oracle序列行为.我有以下顺序:

CREATE SEQUENCE SEQ1 INCREMENT BY 10 START WITH 100 MAXVALUE 200 CYCLE NOCACHE;
Run Code Online (Sandbox Code Playgroud)

以下是"OCA/OCP Oracle数据库11g一体化考试指南"的摘录:

CYCLE控制达到MAXVALUE或MINVALUE时的行为.默认行为是给出错误,但是如果指定了CYCLE,则序列将返回其起始点并重复.

从这里我推断,在达到200的MAXVALUE后,我将得到100,因为起点是100.但令人惊讶的是我得到了一个.这是为什么?

oracle cycle sequence

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