我有一个方法调用SQLServer函数对表执行自由文本搜索.该函数有时会在第一次调用时导致SQLException:"全文查询字符串的单词分解超时".所以我通常想重试该请求,因为它会在后续请求中成功.构造重试逻辑的好方法是什么.目前我有以下内容:
var retryCount = 0;
var results = new List<UserSummaryDto>();
using (var ctx = new UsersDataContext(ConfigurationManager.ConnectionStrings[CONNECTION_STRING_KEY].ConnectionString))
{
for (; ; )
{
try
{
results = ctx.SearchPhoneList(value, maxRows)
.Select(user => user.ToDto())
.ToList();
break;
}
catch (SqlException)
{
retryCount++;
if (retryCount > MAX_RETRY) throw;
}
}
}
return results;
Run Code Online (Sandbox Code Playgroud) 我知道这是一个主观问题,但我总是对编码风格的最佳实践感到好奇.在实现类中调用基本方法之前,ReSharper 4.5给出了关键字"base"的警告,即
base.DoCommonBaseBehaviorThing();
Run Code Online (Sandbox Code Playgroud)
虽然我很欣赏"越少越好"的心态,但我也花费了大量时间来调试/维护高度链接的应用程序,并且感觉通过查看成员调用对于基础对象可能会有所帮助.当然,改变ReSharper的规则很简单,但你们怎么想?在调用基础成员时应该使用"base"吗?
我有一个Student对象:
public class Student
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
一个Classroom对象:
public class Classroom
{
public List<Student> Students { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想使用AutoMapper将学生列表转换为学生ID列表:
public class ClassroomDTO
{
public List<int> StudentIds { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如何配置AutoMapper以执行此转换?
为了扩展我的问题和Jimmy的答案,这就是我最终做的事情:
Mapper.CreateMap<Student, int>().ConvertUsing(x => x.Id);
Mapper.CreateMap<Classroom, ClassroomDTO>()
.ForMember(x => x.StudentIds, y => y.MapFrom(z => z.Students));
Run Code Online (Sandbox Code Playgroud)
AutoMapper非常聪明,可以完成剩下的工作.
我在SharePoint中有一个文档库.当一个新文件上传到该库时,我希望它也能自动复制到另一个文档库.我怎样才能做到这一点?
我知道如何制作下拉列表.我理解如何使条件格式更改单元格的颜色.我不明白的是如何使条件格式化仅基于另一个单元格的状态(而不是比较)来改变单元格的颜色.
A1是一个No / Yes下拉列表
B1 是一个标准声明
如果用户满足条件语句B1,则Yes在下拉列表中选择A1.为了快速参考,如果可能的话,我想B1在此事件中更改为绿色背景颜色,当然如果重置为下拉菜单,则更改为no-fill No.
这在Excel 2003和/或2007中是否可行?
我有一个日期/时间字符串,2012-01-13 04:37:20但我想将其转换为dd-mm-yyyy hh:mm,我该怎么做?
我使用以下代码,但它抛出异常.
var now = "2012-01-13 04:37:20";
var dd = now.toLocaleDateString() + " " + now.toLocaleTimeString();
alert(dd);
Run Code Online (Sandbox Code Playgroud) 我在locahost上运行MVC3站点时遇到此错误.它是一个刚刚创建的新MVC3站点,该HomeController Index方法是在ViewBag.Message作业中被抛出的地方.
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
at System.Runtime.CompilerServices.CallSiteBinder.BindCore[T](CallSite`1 site, Object[] args)
at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
at MVC3.Web.UI.Controllers.HomeController.Index() in C:\Users\mccarthy\Documents\Visual Studio 2010\Projects\MVC3\MVC3.Web.UI\Controllers\HomeController.cs:line 13
at lambda_method(Closure , ControllerBase , Object[] )
at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
Run Code Online (Sandbox Code Playgroud)
我不知道这个错误是什么,以前没见过.当我启动一个新的MVC2项目(直到这一点我一直在使用)时,该网站运行得很好.
Microsoft如何处理MVC3和MVC2框架之间的安全性有什么不同?
我有几个文档库只是标准库 - 没有相关的自定义内容类型或任何东西.我正在尝试向他们添加子文件夹,在某些情况下它只是不起作用.
SPFolder parent = library.RootFolder;
SPFolder child = parent.SubFolders.Add(subfoldername);
parent.Update();
bool exists = child.Exists; // This is false
Run Code Online (Sandbox Code Playgroud)
当我尝试添加一个名为M1 Spectrum CRC w-out CMN67 E02_filesvia code 的子文件夹时,它无法添加该文件夹,即使该Add方法似乎成功执行.当我尝试通过标准的基于浏览器的SharePoint列表UI添加这个确切名称的文件夹时,我成功地添加了一个文件夹,但它有一个不同的名称:
M1 Spectrum CRC w-out CMN67 E02_files_
请注意SharePoint创建的文件夹中的尾随下划线.这是一个合法的Windows文件夹名称,它不包含任何不友好的HTML字符.那么,这有什么用呢?我错过了一些明显的东西吗
我正在尝试在.NET Core类库中使用IdentityModel包,但是我netstandard和之间发生了冲突System.Net.Http:
error CS0433: The type 'HttpClient' exists in both
'System.Net.Http, Version=4.1.1.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and
'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
Run Code Online (Sandbox Code Playgroud)
项目文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="IdentityModel" Version="2.8.1" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
默认值Class1.cs:
using System;
using System.Net.Http;
namespace Test
{
public class Class1
{
HttpClient client = new HttpClient();
public Class1() {}
}
}
Run Code Online (Sandbox Code Playgroud)
解决此问题的正确方法是什么?
我可以像这样在c#中编写switch case吗?
switch (string)
case [a..z]+
// do something
case [A..Z]+
// do something
....
Run Code Online (Sandbox Code Playgroud) c# ×5
sharepoint ×2
.net-core ×1
asp.net ×1
automapper ×1
coding-style ×1
excel ×1
flatten ×1
html ×1
javascript ×1
linq ×1
regex ×1
resharper ×1
sql ×1