小编Jim*_*mbo的帖子

如何在MS SQL中的现有(填充)表中添加NOT NULL FOREIGN KEY列?

我需要向现有(已填充)表添加NOT NULL列,该表将是另一个表的外键.这带来了两个问题:

  1. 添加列时,其值不能为null - 使用默认值不是一个选项(除非稍后删除),因为当用户输入新记录时(即应用程序尝试时),在服务器端验证中使用数据库逻辑要使用具有空值的此字段添加记录,数据库会抛出应用程序捕获并返回给用户的错误,提示他们更正错误.

  2. 该列具有外键约束,这意味着它的值也必须存在于外表中.

最好的方法是什么?

sql-server nullable sql-server-2005 constraints foreign-keys

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

在 Swagger 中禁用“试用”

对于不同的语言,这个问题已经被问过很多次了。经过大量(徒劳)浏览后,我感觉很愚蠢,但无论如何我都会问

本文档是指在似乎是 Javascript https://github.com/swagger-api/swagger-ui/issues/3725 中添加 Swagger 插件

我尝试将该代码添加为注入的 Javascript 资源:

c.InjectJavaScript(thisAssembly, "MyProject.Scripts.swagger-plugins.js");
Run Code Online (Sandbox Code Playgroud)

.js 文件中的代码是

const DisableTryItOutPlugin = function() {
    return {
        statePlugins: {
            spec: {
                wrapSelectors: {
                    allowTryItOutFor: () => () => false
                }
            }
        }
    }
}

const DisableAuthorizePlugin = function () {
    return {
        wrapComponents: {
            AuthorizeBtn: () => () => null
        }
    }
}

SwaggerUI({
    plugins: [
        DisableTryItOutPlugin,
        DisableAuthorizePlugin
    ]
})
Run Code Online (Sandbox Code Playgroud)

那一无所获,我不知道下一步要去哪里。

c# asp.net-mvc swagger swashbuckle

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

c#Linq`List <Interface> .AddRange`方法不起作用

我有一个定义如下的接口:

public interface TestInterface{
    int id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

两个实现该接口的Linq-to-SQL类:

public class tblTestA : TestInterface{
    public int id { get; set; }
}

public class tblTestB : TestInterface{
    public int id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有来自tblTestA和tblTestB的数据库记录填充的IEnumerable列表a和b

IEnumerable<tblTestA> a = db.tblTestAs.AsEnumerable();
IEnumerable<tblTestB> b = db.tblTestBs.AsEnumerable();
Run Code Online (Sandbox Code Playgroud)

但是,不允许以下内容:

List<TestInterface> list = new List<TestInterface>();
list.AddRange(a);
list.AddRange(b);
Run Code Online (Sandbox Code Playgroud)

我必须做如下:

foreach(tblTestA item in a)
    list.Add(item)

foreach(tblTestB item in b)
    list.Add(item)
Run Code Online (Sandbox Code Playgroud)

有什么我做错了吗?谢谢你的帮助

c# linq addrange

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

Asp.Net MVC 4自动绑定表单中对象数组的模型

我在JavaScript中构建了一个对象数组,并希望通过Ajax将它们发布回服务器(我使用jQuery)

JavaScript对象数组如下所示:

var columns = [
    { name: 'col 1', source: 'whatever', hidden: false, width: 50 },
    ...
];
Run Code Online (Sandbox Code Playgroud)

我发布回来像这样:

$.post('/MyController/MyAction', { 'columns': columns });
Run Code Online (Sandbox Code Playgroud)

在控制器操作我目前得到这个:

在此输入图像描述

我有一个ac#object叫JqColumn我想绑定帖子,它看起来像这样:

public class JqGridColumn
{
    public string name;
    public string source;
    public int width;
    public bool hidden;
}
Run Code Online (Sandbox Code Playgroud)

所以我认为在类型的控制器动作中添加一个参数JqGridColumn[] columns会自动绑定发布的数据,但它不会(它生成一个数组,具有正确的元素数,但数组中的每个项都有空值)

谁能告诉我我做错了什么?谢谢!

UPDATE

目前,我手动绑定控制器操作中的项目如下:

    public void ColumnChooser(JqGridColumn[] columns)
    {
        for (int i = 0; i < columns.Length; i++)
        {
            columns[i].hidden = bool.Parse(Request.Form["columns[" + i + "][hidden]"]);
            columns[i].width = int.Parse(Request.Form["columns[" + i …
Run Code Online (Sandbox Code Playgroud)

javascript arrays asp.net-mvc form-post model-binding

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

当存在模糊的虚方法时,为什么这个C#代码编译得很好?

我有一个类(B类)继承了包含虚方法的另一个类(A类).

错误地,我override在B类中声明(应该是)重写方法时省略了关键字.

A级

public class ClassA{
    public virtual void TestMethod(){
    }
}
Run Code Online (Sandbox Code Playgroud)

B级

public class ClassB : ClassA{
    public void TestMethod(){
    }
}
Run Code Online (Sandbox Code Playgroud)

编译的代码没有问题.有谁能解释为什么?

c# methods inheritance overriding

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

在jQuery中取消键击

是否可以(跨浏览器兼容)取消用户完成后的击键(例如在文本框上)

我目前使用的代码在显示击键后编辑文本框值:

$('.number').keypress(function() {
    this.value = this.value.replace(/[^0-9\.]/g, '');
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery textbox keystroke keypress

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

是否有一个Javascript事件在HTML元素滚动到视图时触发?

我想加载元素,因为它们滚动到视图中以减少服务器负载,例如缩略图,但希望它们的占位符divs在页面加载时存在.要做到这一点,我认为当div变得可见时我需要某种触发器.

jquery-appear被建议但我似乎无法从任何地方获得它的副本(谷歌给我403错误)

有谁知道怎么做呢?

html javascript jquery dom

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

通用枚举到SelectList扩展方法

我需要建立一个SelectList从任何Enum在我的项目.

我有下面的代码,我从特定的枚举创建一个选择列表,但我想为任何枚举创建一个扩展方法.此示例检索DescriptionAttribute每个Enum值的值

var list = new SelectList(
            Enum.GetValues(typeof(eChargeType))
            .Cast<eChargeType>()
            .Select(n => new
                {
                    id = (int)n, 
                    label = n.ToString()
                }), "id", "label", charge.type_id);
Run Code Online (Sandbox Code Playgroud)

参考这篇文章,我如何处理?

public static void ToSelectList(this Enum e)
{
    // code here
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc extension-methods enums selectlist

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

Google Adsense 多次加载脚本

我有一个显示 Google Ads 的页面 - 其中三个。广告初始化如下:

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>

<ins class="adsbygoogle class-resp" style="display:inline-block" data-ad-client="ca-pub-4283524395367264" data-ad-slot="8923673879"></ins>
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>

<ins class="adsbygoogle class-resp" style="display:inline-block" data-ad-client="ca-pub-4283524395367264" data-ad-slot="8923673879"></ins>
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>

<ins class="adsbygoogle class-resp" style="display:inline-block" data-ad-client="ca-pub-4283524395367264" data-ad-slot="8923673879"></ins>
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
Run Code Online (Sandbox Code Playgroud)

问题是页面大小大得离谱,原因主要是每个广告似乎都需要自己下载以下每个脚本,即每个脚本都下载了 3 次,每个页面加载增加了大约 700kb(对于移动设备)浏览量太大)

http://pagead2.googlesyndication.com/pagead/js/r20150402/r20150224/show_ads_impl.js http://pagead2.googlesyndication.com/pagead/js/r20150402/r20150224/expansion_embed.js HTTP://pagead2.googlesyndication。 com/pagead/js/r20150402/r20110914/abg.js

有没有人知道一种方法可以强制三个广告共享上述三个脚本中的每一个的单个下载,或者每个广告都必须下载它们各自的副本?

javascript adsense google-ads-api

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

如何在Hangfire中的后台作业中获取当前尝试号码?

在我的Hangfire后台作业的最终尝试结束之前,我需要执行一些数据库操作(我需要删除与作业相关的数据库记录)

我当前的作业使用以下属性设置:
[AutomaticRetry(Attempts = 5, OnAttemptsExceeded = AttemptsExceededAction.Delete)]

考虑到这一点,我需要确定当前的尝试次数是什么,但我很难通过Google搜索或Hangfire.io文档找到这方面的任何文档.

asp.net-mvc scheduled-tasks hangfire

6
推荐指数
3
解决办法
3498
查看次数