小编Dyl*_*lan的帖子

如何在ServiceStack OrmLite中检索自动递增的Id?

对于具有标识的表:

    [AutoIncrement]
    public int Id { get; set;}
Run Code Online (Sandbox Code Playgroud)

将新行插入数据库时​​,检索对象Id的最佳方法是什么?

例如:

db.Insert <>(new User());

插入后Id的值为0,但在数据库中显然不是这种情况.我能看到的唯一可能性如下:

Id = (int)db.GetLastInsertId();
Run Code Online (Sandbox Code Playgroud)

但是我不相信这是一个安全的号召.如果同时发生100个插入,则可能会返回另一个插入的Id.在EF中进行插入时,将为您设置ID.

有谁知道最好的方法吗?

sql-server servicestack ormlite-servicestack

21
推荐指数
1
解决办法
7364
查看次数

如何在编译错误时停止Visual Studio 2010

在工作中,我们拥有超过90个项目的解决方案.我想知道是否有办法阻止visual studio在遇到错误时立即编译.通常它会尽可能地编译并在错误窗口中显示错误列表.

有任何想法吗?

compilation visual-studio

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

ServiceStack如何处理并发调用?

ServiceStack如何处理并发调用?我在WCF中寻找相当于ConcurrencyMode.Multiple的东西.

我的WCF服务设置了此属性:

   [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Multiple, UseSynchronizationContext = false)]
Run Code Online (Sandbox Code Playgroud)

我是否需要在ServiceStack中启用任何内容以使其为每个调用使用多个线程?

c# rest servicestack

16
推荐指数
1
解决办法
3764
查看次数

实体框架自动加载

有没有办法让实体对象通过关系自动提取所有相关数据,而不是必须.包括我想要填充的所有内容?我不能使用延迟加载,因为这需要序列化以通过WCF.让它自动填充相关集合真是太棒了.

c# wcf entity entity-framework

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

如何删除MDI父窗体上的灰色背景?

我要做的是在标记为mdi容器的表格上画一些玻璃.但是,只要设置了IsMdiContainer,表单就会在其控件列表中添加一个MdiClient.此时,父表单会发生一些事情 - 几乎就像深灰色面板停靠在MdiClient所在的整个表单上.

我接下来要做的是将MdiClient控件移开一点:

    foreach(var c in Controls)
    {
        if(c is MdiClient)
        {
            var client = (MdiClient)c;
            client.BackColor = Color.Red;
            client.Dock = DockStyle.None;
            client.Size = new Size(this.Width-100, this.Height);
            break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后,这使得实际的MdiClient区域变小,以便我们可以看到它背后的内容(托管子窗体的位),并且显然父窗体不是绘画或其他东西.

从这里可以看出:http://img525.imageshack.us/img525/8605/mdiglassproblem.png

我现在需要以某种方式获得MdiClient背后的区域(在玻璃部分呈现白色的深灰色部分)消失.

有任何想法吗?

PS - 在Vista中使用DwmExtendFrameIntoClientArea方法渲染Glass.

c# forms mdi mdiparent

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

某些方法的WCF REST基本身份验证

我在WCF 4.0中实现了很多RESTful(GET和POST)方法.所有这些都通过SSL工作.

一些方法的示例:

[OperationContract]
[WebInvoke(UriTemplate = "Login?", Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
LoginResponse Login(LoginRequest request);

[OperationContract]
[WebInvoke(UriTemplate = "UpdateDetails?", Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
UpdateUserDetailResponse UpdateDetails(UpdateUserDetailRequest request);

[OperationContract]
[WebInvoke(UriTemplate = "GetDetails?", Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
UserDetailResponse GetDetails(UserDetailRequest request);
Run Code Online (Sandbox Code Playgroud)

我查看了很多博客和论坛,但仍然无法找到符合我要求的内容.我需要对某些方法实现基本身份验证,但不是全部.如果你看一下上面的例子,我需要为UpdateDetails和GetDetails方法发送用户名和密码,而不是Login方法.然后,对数据库验证用户名和密码.可以这样做吗?

作为旁注:这些REST方法由许多不同的移动设备调用.

我查看了以下站点,它们都通过REST实现基本身份验证,它们涵盖了上面提到的所有方法.

有可能做我想做的事吗?

c# security rest mobile wcf

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

接受多个tcp客户端的最佳方式?

我有一个客户端/服务器基础设施.目前,他们使用TcpClient和TcpListener在所有客户端和服务器之间发送接收数据.

我目前所做的是当收到数据时(在它自己的线程上),它被放入一个队列中供另一个线程处理,以便释放套接字,使其准备好并打开以接收新数据.

                // Enter the listening loop.
                while (true)
                {
                    Debug.WriteLine("Waiting for a connection... ");

                    // Perform a blocking call to accept requests.
                    using (client = server.AcceptTcpClient())
                    {
                        data = new List<byte>();

                        // Get a stream object for reading and writing
                        using (NetworkStream stream = client.GetStream())
                        {
                            // Loop to receive all the data sent by the client.
                            int length;

                            while ((length = stream.Read(bytes, 0, bytes.Length)) != 0)
                            {
                                var copy = new byte[length];
                                Array.Copy(bytes, 0, copy, 0, length);
                                data.AddRange(copy); …
Run Code Online (Sandbox Code Playgroud)

c# networking tcplistener tcpclient

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

MonoTouch对话框元素不会自行更新/重新绘制

我在以下部分中有以下内容:

            _favElement = new StyledStringElement (string.Empty);
            _favElement.Alignment = UITextAlignment.Center;

            if (_room.IsFavourite) {
                _favElement.Image = UIImage.FromBundle ("Images/thumbs_up.png");
                _favElement.Caption = "Unmark as Favourite";
            } else {
                _favElement.Image = null;
                _favElement.Caption = "Mark as Favourite";
            }

            _favElement.Tapped += favElement_Tapped;
Run Code Online (Sandbox Code Playgroud)

然后,当我按下元素时,我希望发生以下情况:

        private void favElement_Tapped ()
        {
            if (_room.IsFavourite) {
                _favElement.Image = null;
                _favElement.Caption = "Mark as Favourite";
            } else {
                _favElement.Image = UIImage.FromBundle ("Images/thumbs_up.png");
                _favElement.Caption = "Unmark as Favourite";
            }   

            _room.IsFavourite = !_room.IsFavourite;
        }
Run Code Online (Sandbox Code Playgroud)

但是,当点击元素时,图像和文本在实际元素中不会改变.是否有刷新方法或必须调用的东西?我也试过改变Tapped上的附件,没有任何变化.后面的属性确实反映了正确的值.

xamarin.ios monotouch.dialog

3
推荐指数
2
解决办法
1838
查看次数

如何在WCF soap响应中实现安全性令牌?

我正在从银行实施API,他们需要提供安全令牌.在每个肥皂消息的标题中,有一些看起来如下:

<soapenv:Header>
  <tpw:BinarySecurityToken ValueType="MAC" Id="DesMacToken" EncodingType="Base64" Value="**xvz**"/>
</soapenv:Header>
Run Code Online (Sandbox Code Playgroud)

根据他们的文档,我需要在每条消息的主体上生成一个8字节的MAC值.MAC由CBC-MAC算法生成,DES由块密码生成.每条消息的soapenv:Body标签的内容用作MAC计算的数据.

所以我的问题是如何让WCF这样做?我已将以下代码放在一起以创建MAC值,但我不确定如何将其放入每条消息的标头中.

private string GenerateMAC(string SoapXML)
        {
            ASCIIEncoding encoding = new ASCIIEncoding();

            //Convert from Hex to Bin
            byte[] Key = StringToByteArray(HexKey);
            //Convert String to Bytes
            byte[] XML = encoding.GetBytes(SoapXML);

            //Perform the Mac goodies
            MACTripleDES DesMac = new MACTripleDES(Key);
            byte[] Mac = DesMac.ComputeHash(XML);

            //Base64 the Mac
            string Base64Mac = Convert.ToBase64String(Mac);

            return Base64Mac;
        }

        public static byte[] StringToByteArray(string Hex)
        {
            if (Hex.Length % 2 != 0)
            {
                throw new ArgumentException();
            }

            byte[] HexAsBin = …
Run Code Online (Sandbox Code Playgroud)

c# security wcf soap token

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

是否正在使用aync /等待Web服务的好主意?

我有很多Web服务,当它们被调用时,它们需要在返回之前调用其他外部服务来获取信息.这一切都是同步完成的.

因此,如果我有一个返回电影列表的电影GET服务,Web服务逻辑将等待电影提供商的外部服务返回数据,处理它并返回GET的数据.

将外部服务调用包装在Task中并使用async/await模型可以证明它有什么好处吗?处理GET的初始线程是否仍然只是被阻塞等待响应,还是会被释放来处理其他传入的服务调用?

c# concurrency web-services

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

ngx-leaflet:如何添加自定义控件?

我曾尝试了一段时间,现在实现这个小册子教程使用ngx-leaflet

在遵循本教程时,绝对没有关于如何实现自定义控件或图例的明确文档

var info = L.control();

info.onAdd = function (map) {
    this._div = L.DomUtil.create('div', 'info'); // create a div with a class "info"
    this.update();
    return this._div;
};

// method that we will use to update the control based on feature properties passed
info.update = function (props) {
    this._div.innerHTML = '<h4>US Population Density</h4>' +  (props ?
        '<b>' + props.name + '</b><br />' + props.density + ' people / mi<sup>2</sup>'
        : 'Hover over a state');
}; …
Run Code Online (Sandbox Code Playgroud)

leaflet typescript angular ngx-leaflet

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

Microsoft Dynamics CRM或SQL Server?

在我的组织中,我们为许多不同的客户编写了许多自定义移动解 我们已经开始在一些测试产品中使用Microsoft Dynamics CRM 2011,但我们使用它的几乎所有工作都是使用自定义实体完成的,并且解决方案将其用作后端数据库.从我迄今为止的印象来看,以这种方式使用CRM是违反直觉和缓慢的.

根据您的经验,使用CRM而不是普通的SQL Server会有什么好处吗?我只看到了CRM前端的非常基本的东西,但我不确定自定义实体如何在CRM中变得有用?

sql-server dynamics-crm dynamics-crm-2011

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