小编SB2*_*055的帖子

引入FOREIGN KEY约束可能会导致循环或多个级联路径 - 为什么?

我已经和它搏斗了一段时间,并且无法弄清楚发生了什么.我有一个卡片实体,其中包含Sides(通常为2个) - 卡片和侧面都有一个舞台.我正在使用EF Codefirst迁移,并且迁移失败并出现此错误:

在表'Sides'上引入FOREIGN KEY约束'FK_dbo.Sides_dbo.Cards_CardId'可能会导致循环或多个级联路径.指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束.

这是我的卡片实体:

public class Card
{
    public Card()
    {
        Sides = new Collection<Side>();
        Stage = Stage.ONE;
    }

    [Key]
    [Required]
    public virtual int CardId { get; set; }

    [Required]
    public virtual Stage Stage { get; set; }

    [Required]
    [ForeignKey("CardId")]
    public virtual ICollection<Side> Sides { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是我的Side实体:

public class Side
{
    public Side()
    {
        Stage = Stage.ONE;
    }

    [Key]
    [Required]     
    public virtual int …
Run Code Online (Sandbox Code Playgroud)

.net entity-framework entity-framework-4 ef-code-first

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

Toastr:如何防止在鼠标悬停时使用粘性吐司淡出?

我一直在玩toastr并且已经成功地将超时设置为0,因此吐司仍然是粘性的,但是当我将鼠标移出吐司时吐司消失了.我想要覆盖它,所以如果用户点击它,烤面包就会消失 - 非常适合有大量文字的祝酒词.如何才能做到这一点?

notifications messages mouseover sticky toastr

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

在WebApi或MVC控制器中使用ConfigureAwait(false)有任何危险吗?

说我有两个场景:

1)WebApi控制器

    [System.Web.Http.HttpPost]
    [System.Web.Http.AllowAnonymous]
    [Route("api/registerMobile")]
    public async Task<HttpResponseMessage> RegisterMobile(RegisterModel model)
    {
        var registerResponse = await AuthUtilities.RegisterUserAsync(model, _userService, User);
        if (registerResponse.Success) {
            var response = await _userService.GetAuthViewModelAsync(model.Username, User);
            return Request.CreateResponse(HttpStatusCode.OK, new ApiResponseDto() { Success = true, Data = response });
        }
        else {
            return Request.CreateResponse(HttpStatusCode.OK, registerResponse);
        }

    }
Run Code Online (Sandbox Code Playgroud)

2)MVC控制器

    [Route("public")]
    public async Task<ActionResult> Public()
    {
        if (User.Identity.IsAuthenticated)
        {
            var model = await _userService.GetAuthViewModelAsync(User.Identity.Name);
            return View("~/Views/Home/Index.cshtml", model);
        }
        else
        {
            var model = await _userService.GetAuthViewModelAsync(null);
            return View("~/Views/Home/Index.cshtml", model);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我一直在阅读我应该使用的时间ConfigureAwait …

.net c# asp.net-mvc asynchronous asp.net-web-api

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

SignalR OnDisconnected - 为聊天室处理"用户在线"的可靠方法?

我正在实施一个聊天室.到目前为止,这么好 - 用户可以通过JS客户端从他们的浏览器发送消息,我可以使用C#客户端做同样的事情 - 这些消息被广播给其他用户.现在,我正在尝试实施"在线用户".

我的方法如下:

  • OnConnected - 将数据库中的用户更新为IsOnline = true
  • OnDisconnected - 如果用户没有任何其他连接,请更新数据库中的用户 IsOnline = false
  • 我将状态存储在数据库中,因为无论如何我必须在数据库中查询用户缩略图 - 这似乎是在集线器中使用字典的简单替代方法.

我遇到的问题是OnDisconnected并不总是为每个客户端ID调用 - 过时的连接阻止"如果用户没有任何其他连接"位解析为true,那么用户总是"在线" ".

我能想到的一个hacky解决方案是始终在db中将用户设置为脱机OnDisconnect- 但这意味着如果用户打开两个选项卡并关闭一个选项卡,它们将"脱机".然后,我可以将用户重新设置为联机以获取发送的每条消息,但这似乎完全浪费了处理周期,并且仍然留下了一段时间,当用户真正在线时,用户被视为离线.

我相信,如果有办法保证为每个客户端调用OnDisconnected,这个问题就会消失.它看起来就像如果我离开的客户打开很长一段时间(> 10分钟),然后断开,OnDisconnected不会被调用.我会尽力确定repro步骤并保持更新.

那么 - 这是处理在线状态的有效方法吗?如果是这样,还有什么可以做的,以确保OnDisconnected最终为每个连接触发?

这个问题让我担心,因为现有的Connections会随着时间的推移而继续增长,如果我没有弄错的话,最终因为未处理的状态连接而溢出.

码:

我正在使用内存中的分组方法.

发送消息(C#):

private readonly static ConnectionMapping<string> _chatConnections =
            new ConnectionMapping<string>();
public void SendChatMessage(string key, ChatMessageViewModel message) {
            message.HtmlContent = _compiler.Transform(message.HtmlContent);
            foreach (var connectionId in _chatConnections.GetConnections(key)) {
                Clients.Client(connectionId).addChatMessage(JsonConvert.SerializeObject(message).SanitizeData());
            }
        }
Run Code Online (Sandbox Code Playgroud)

国家管理:

    public override Task …
Run Code Online (Sandbox Code Playgroud)

c# signalr signalr-hub signalr.client

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

如何在IISExpress上使用带有localhost的子域?

我现在通过localhost:5252本地服务我的MVC应用程序.

我正在尝试通过让localhost和contoso.localhost指向我的Web应用程序实例来设置我的应用程序来测试多租户.

我使用相应的条目设置我的hosts文件:

127.0.0.1       contoso.localhost
Run Code Online (Sandbox Code Playgroud)

但是我不确定我还需要做些什么才能完成这项工作.现在我在导航时只获得一个标准的IIS8页面,即使我在IIS管理器中没有做任何事情.

我试图避免在本地使用IIS,因为一切都在使用IISExpress.有没有简单的方法来实现这一目标?

asp.net iis localhost iis-express

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

使用实体框架Codefirst存储TimeSpan - SqlDbType.Time溢出

我正在尝试将一些常量添加到我的数据库中:

context.Stages.AddOrUpdate(s => s.Name,
                                   new Stage()
                                   {
                                       Name = "Seven",
                                       Span = new TimeSpan(2, 0, 0),
                                       StageId = 7
                                   });
context.Stages.AddOrUpdate(s => s.Name,
                                   new Stage()
                                   {
                                       Name = "Eight",
                                       Span = new TimeSpan(1, 0, 0, 0),
                                       StageId = 8
                                   });
Run Code Online (Sandbox Code Playgroud)

这是我的用于EF Codefirst Migrations的Seed()函数.它在第八阶段失败,具体如下:

System.Data.UpdateException:更新条目时发生错误.有关详细信息,请参阅内部异常 ---> System.OverflowException:SqlDbType.Time溢出.值'1.00:00:00'超出范围.必须在00:00:00.0000000和23:59:59.9999999之间.

为什么我无法使用EF存储时间跨度?我真的希望我不需要在这两端做一些愚蠢的时间转换...

.net c# entity-framework ef-code-first

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

如何使用knockout绑定访问文件输入?

给出以下代码:

<input data-bind="event: { change: uploadImage(this.files[0]) }" style="width: 10px;" type="file">
Run Code Online (Sandbox Code Playgroud)

我收到错误提示"文件未定义".我正在尝试转换此演示:

https://github.com/paulrouget/miniuploader/blob/gh-pages/index.html

对于淘汰赛友好的实施.加载页面时发生错误.知道如何访问该文件,如果用户指定的话?

jsfiddle:http://jsfiddle.net/LkqTU/9597/

knockout.js

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

使用WebAPI进行RESTFul身份验证

我有一个使用WebAPI构建的Web服务,它接受JSON请求并相应地响应.核心架构已构建,但没有任何身份验证/授权.

经过大量的谷歌搜索和示范项目,我不知道从哪里开始.我发现了2008年和2009年的大量资料,但没有为WebAPI /单页应用程序提供大量最新的指南/工作流程.我认为工作流程应该如下:

  1. 检查用户是否已登录:如何使用javascript完成此操作?我是否将cookie发送到我的webAPI?如果是这样,我是否将该cookie作为参数发送到请求正文中?

  2. 让用户登录/注册:这些数据如何加密/解密?当然我不能通过线路发送密码......这是SSL进来的地方吗?

  3. 让他们访问他们有权访问的内容:我想我得到了这个 - 我可以在每个请求的基础上在控制器中进行授权.

任何信息都会很棒.

authentication asp.net-web-api single-page-application

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

Enabling CORS with WebAPI PUT/POST requests?

I've tried following this post but I'm still not quite there:

CORS support for PUT and DELETE with ASP.NET Web API

In my web.config I have the following:

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <httpProtocol>
      <customHeaders>
        <!-- TODO: don't let anyone make requests - only approved clients -->
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
      </customHeaders>
    </httpProtocol>
    <handlers>
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <remove name="WebDAV" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." …
Run Code Online (Sandbox Code Playgroud)

asp.net-web-api asp.net-web-api-routing

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

不区分大小写的字符串比较不适用于C#?

根据这个问题的答案:

如何进行不区分大小写的字符串比较?

我试图在不使用Compare或ToLower的情况下进行不区分大小写的比较:

var user = db.Users.FirstOrDefault(s => String.Equals(s.Username, username, StringComparison.OrdinalIgnoreCase));
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

为调用方法'Boolean Equals(System.String,System.String,System.StringComparison)提供的参数数量不正确

我究竟做错了什么?

c# linq asp.net linq-to-sql

15
推荐指数
1
解决办法
7699
查看次数