小编Pet*_*ron的帖子

在设置之前比较布尔值

在C#中,布尔变量的值设置为当false 只有当它是true,我应该检查它是否true设置之前,或刚成立的呢?

假设变量是true50%的时间,检查它是有意义的,因为比较更快.如果变量true大部分时间,我应该跳过比较吗?

哪种更好的做法?

方法1,先检查:

if (bVariable)
    bVariable = false;
Run Code Online (Sandbox Code Playgroud)

方法2,只需设置它:

bVariable = false;
Run Code Online (Sandbox Code Playgroud)

在哪种情况下方法2是首选,如果有的话?

c# comparison boolean

8
推荐指数
1
解决办法
2377
查看次数

SQL Server全文索引出现多个LCID错误

当其他人为英语时,将一个全文索引列语言(LCID)更改为中性会导致以下错误:

System.Data.SqlClient.SqlException (0x80131904):
Full-text table or indexed view has more than one LCID among its
full-text indexed columns
Run Code Online (Sandbox Code Playgroud)

重新填充索引不能解决错误.

如果SQL Server允许我为每个全文列指定不同的语言,那么肯定有办法绕过这个错误吗?

sql-server full-text-search sqlexception lcid

8
推荐指数
1
解决办法
3863
查看次数

具有持久HTTP连接的IDbConnection生命周期管理

HttpContext在我的ASP.NET MVC应用程序中存在持久HTTP连接(如SignalR集线器)时,我在管理使用StructureMap的开放式数据库连接的生命周期时遇到了问题.

我的DI容器StructureMap IDbConnection为几个服务注入了一个open .为了确保关闭并妥善处理这些数据库连接,我调用ObjectFactory.ReleaseAndDisposeAllHttpScopedObjects()了该EndRequest事件.

这对于MVC控制器非常有用,直到需要数据库连接的服务注入到SignalR集线器中,这会为每个客户端保持持久的HTTP连接,并最终使连接池饱和.

如果我IDbConnection使用单一范围,每个应用程序只打开一个连接,并且池不会饱和,但如果连接被锁定或超时,这是一个坏主意.

那么也许有一种方法可以自定义SignalR集线器的数据库连接范围?我尝试在每个Hub方法中解析服务实例,但这仍然在HttpContext范围内实例化数据库连接,并在调用客户端的集线器连接期间保持打开状态.

当存在持久的HTTP连接时,如何在HTTP范围的上下文中管理使用StructureMap的数据库连接的生命周期?

示例代码

典型服务

public class MyService
{
    private IDbConnection _con;
    public MyService(IDbConnection con)
    {
        _con = con;
    }

    public IEnumerable<string> GetStuff()
    {
        return _con.Select<string>("SELECT someString FROM SomeTable").ToList();
    }
}
Run Code Online (Sandbox Code Playgroud)

典型的SignalR Hub

public class MyHub : Hub
{
    private MyService _service;
    public MyHub(MyService service)
    {
        _service = service; // Oh Noes! This will open a database connection
                            // for each Client because of …
Run Code Online (Sandbox Code Playgroud)

structuremap asp.net-mvc lifetime idbconnection signalr

8
推荐指数
1
解决办法
1325
查看次数

改进的Colemak编程

是否存在专为编程而设计的改良Colemak键盘布局?

我几天前在Colemak键盘布局上冷烤了,我非常喜欢正常的打字,但是我经常编写像;(分号)键这样的字符.修改后的布局有大括号和圆括号的直接映射会很好.

显然,我可以通过反复试验重新映射这些密钥,但我希望有人做了一些测试来确定公共语言字符的最佳布局.

keyboard colemak keyboard-layout

8
推荐指数
2
解决办法
4756
查看次数

DataGrip Postgres SSL错误:sun.security.validator.ValidatorException

DataGrip不会连接到我的Postgres实例,但我可以通过psql终端连接正常:

psql -h dbhost.com reps username
>Password for user... (connects)
Run Code Online (Sandbox Code Playgroud)

但是,IntelliJ DataGrip抛出:

Connection to username@dbhost.com failed.
SSL error: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Run Code Online (Sandbox Code Playgroud)

它使用的连接字符串是 jdbc:postgresql://dbhost.com:5432/dbname

postgresql ssl datagrip

8
推荐指数
1
解决办法
2652
查看次数

如何从XSD架构构建数据库并导入XML数据

我有一个复杂的XSD架构和数百个符合架构的XML文件.

如何自动创建相关的SQL Server表来存储XML数据?

我考虑过使用xsd.exe工具从XSD架构创建C#类,让像Subsonic这样的东西弄清楚如何从中创建一个闪亮的数据库,但不确定它是否是最好的方法.

有没有人设法优雅地将XSD文件导入SQL Server?

一个类似的问题,答案很好:如何从XSD文件创建数据库表?

xml database sql-server import xsd

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

表单设计器打破通用抽象UserControl

我有一个通用的抽象UserControl类,SensorControl我希望我的所有传感器控制面板都可以继承.

问题

尝试EthernetSensorControl在Visual Studio中设计(我继承的UserControl表单之一)时,表单设计器中显示以下错误:

无法为此文件显示设计器,因为其中的所有类都无法设计.设计人员检查了文件中的以下类:DeviceSensorControl ---无法加载基类"Engine.Sensors.SensorControl".确保已引用程序集并且已构建所有项目.

SensorControl 类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Engine.Sensors
{
    public abstract class SensorControl<SensorType>
        : UserControl where SensorType : class
    {
        protected SensorType _sensor;
        public SensorControl(SensorType sensor)
        {
            _sensor = sensor;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

示例继承的类,EthernetSensorControl:

namespace Engine.Sensors
{
    public partial class EthernetSensorControl
        : SensorControl<EthernetSensor>
    {
        public EthernetSensorControl(EthernetSensor sensor)
            : base(sensor)
        {
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

和调用堆栈:

在Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)的System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager)的System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.EnsureDocument(IDesignerSerializationManager manager)中在System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost主机)

一切都编译好,我可以看到显示的面板,但我无法设计它.我认为问题可能与partial …

c# inheritance templates partial-classes windows-forms-designer

7
推荐指数
1
解决办法
4876
查看次数

在哪里定义AutoMapper映射?

在我的ASP.NET MVC应用程序中,我应该定义AutoMapper映射吗?

Mapper.CreateMap<User, UserViewModel>();
Run Code Online (Sandbox Code Playgroud)

目前我在BaseController的构造函数中定义了这些,我的所有Controlllers都是从这个构造函数派生出来的.这是最好的地方吗?

automapper asp.net-mvc-3

7
推荐指数
1
解决办法
2408
查看次数

51Degrees重新加载每个请求减慢ASP.NET MVC爬行

添加51Degrees移动检测库后,我的ASP.NET MVC 3项目变慢了.所限定的51Degrees日志文件<log logFile="~/bin/App_Data/51Log.txt" logLevel="Info" /><fiftyOne>部分表明,装置库重新加载对于每个请求,增加了对每个请求一个2-3秒的延迟:

2011-10-22T14:17:34.9863774Z - 8436 - Info - Loaded 14691 devices using 11640 strings in 1882ms
2011-10-22T14:17:50.8442844Z - 8436 - Info - Loaded 14691 devices using 11640 strings in 1820ms
2011-10-22T14:17:57.2756523Z - 8436 - Info - Loaded 14691 devices using 11640 strings in 1928ms
2011-10-22T14:18:01.0488681Z - 8436 - Info - Loaded 14691 devices using 11640 strings in 1886ms
2011-10-22T14:18:04.6790757Z - 8436 - Info - Loaded 14691 devices using 11640 strings in 1862ms …
Run Code Online (Sandbox Code Playgroud)

mobile detection asp.net-mvc-3 asp.net-mvc-4 51degrees

7
推荐指数
1
解决办法
1233
查看次数

ASP.NET MVC 4打破了ASP.NET MVC 3项目

安装ASP.NET MVC 4开发人员预览版后,我无法再打开MVC 3项目,并显示以下错误消息:

The project type is not supported by this installation.
Run Code Online (Sandbox Code Playgroud)

<ProjectTypeGuids> 在我的MVC 3 .csproj文件看起来正确:

<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
Run Code Online (Sandbox Code Playgroud)

这是MVC 4开发人员预览中的错误,还是Visual Studio 2010安装中缺少的?我该如何解决?我应该回滚我的MVC 4安装吗?

我试过运行devenv /ResetSkipPkgs并安装了MVC 3工具更新,但无济于事.

visual-studio-2010 asp.net-mvc-3 asp.net-mvc-4

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