小编Jon*_*ell的帖子

字符串的可为空性与实体框架代码优先创建的列中的其他数据类型

使用Code First在类中定义字符串时,生成的数据库中的列的缺省值允许为空.

    public string MyString { get; set; }
Run Code Online (Sandbox Code Playgroud)

创建此列:

MyString(nvarchar(max),null)

我可以通过使用[Required]属性或使用Fluent API中的.IsRequired()方法将其更改为"not null" .

其他数据类型的默认值不允许空值.

    public int MyInt { get; set; }
    public DateTime MyDateTime { get; set; }
    public float MyFloat { get; set; }
    public decimal MyDecimal { get; set; }
    public bool MyBool { get; set; }
Run Code Online (Sandbox Code Playgroud)

创建这些列:

MyInt(int,not null)

MyDateTime(datetime,not null)

MyFloat(真实,非空)

MyDecimal(十进制(18,2),不为null)

MyBool(位,不是null)

我可以通过在Fluent API中使用.IsOptional()方法来更改这些以允许空值.是否有一个属性可以做同样的事情?

我还可以更改类定义中的数据类型以允许空值(int?,DateTime?等),这会产生允许数据库中为空的列.

默认情况下,对于字符串而不是其他数据类型允许空值的基本原理是什么?

entity-framework ef-code-first

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

什么是LinqPad的lambda窗口?

我可能是愚蠢的,但在运行代码后似乎永远不会在'lambda窗口'中显示任何内容.任何人都可以解释它应该如何工作?

linq linqpad

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

如何将可空int转换为对不同语言环境中的计算机安全的字符串?

我正在将a转换nullable integer为a string,并且Resharper警告我使用InvariantCulture.

shipment.ShipmentID.ToString()
Run Code Online (Sandbox Code Playgroud)

快速Alt-Enter,稍后输入,给我这个:

shipment.ShipmentID.ToString(CultureInfo.InvariantCulture)
Run Code Online (Sandbox Code Playgroud)

不幸的是,Resharper并不满意,并提出同样的建议,这对我来说没有意义.

shipment.ShipmentID.ToString(CultureInfo.InvariantCulture, 
                                CultureInfo.InvariantCulture)
Run Code Online (Sandbox Code Playgroud)

nullable int上的ToString()将不会构建,给出一个错误,指出No overload方法'ToString'需要1个参数.

不可为空的整数表现不同.

int requiredInt = 3;
// no Resharper or compiler warning
var stringFromRequiredInt = requiredInt.ToString(CultureInfo.InvariantCulture); 
Run Code Online (Sandbox Code Playgroud)

如何将a转换为nullable intstring不同语言环境中的计算机安全的应该怎么做?

c# int locale nullable type-conversion

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

Balsamiq用于网络或架构图

我喜欢Balsamiq的粗略外观以及快速将设计融合在一起的能力.我希望能够为建筑图做同样的事情,但Balsamiq没有任何对象用于那些类型的图纸.

Visio和PowerPoint工作正常,但界面阻碍了.(搜索对象等)最终结果也太过抛光和正式外观,这在新系统的概念阶段是不好的.

是否有另一种工具可以像Balsamiq一样工作,适用于架构图?白板+相机很好,但我并不总是有白板.

architecture diagram software-design

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

使用 Excel VBA 删除超链接时如何保留单元格格式?

从单元格中删除超链接也会删除格式。

Selection.Hyperlinks.Delete
Run Code Online (Sandbox Code Playgroud)

有没有办法保留格式,或者我需要在删除超链接后重新应用它?

excel vba

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

复杂SQL连接与group by

我正在尝试优化需要很长时间的查询.查询的目标是获得最佳类似的F2.(特殊相似性度量)这是我的例子:

 CREATE TABLE Test
(
   F1 varchar(124),
   F2 varchar(124),
   F3 varchar(124)
)
INSERT INTO TEST ( F1, F2, F3 ) VALUES ( 'A', 'B', 'C' )
INSERT INTO TEST (  F1, F2, F3 ) VALUES ( 'D', 'B', 'E' )
INSERT INTO TEST (  F1, F2, F3 ) VALUES ( 'F', 'I', 'G' )
INSERT INTO TEST (  F1, F2, F3 ) VALUES ( 'F', 'I', 'G' )
INSERT INTO TEST (  F1, F2, F3 ) VALUES ( 'D', 'B', …
Run Code Online (Sandbox Code Playgroud)

sql sql-server join group-by sql-server-2008

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

如何从 C# 中的 USB 令牌读取证书

我有一个包含加密证书的 USB 令牌,该证书具有公钥和私钥。现在我想用 C# 创建一个应用程序,通过它我可以找到可访问的证书信息。当我插入 USB 令牌时,它被检测到,但计算机段上没有显示驱动器,因为它发生在闪存驱动器上。

如何从 USB 驱动器读取证书?

c# usb certificate token

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

如何将Math.max与对象数组一起使用?

我想选择一个对象数组中的最大数字,所以例如,我想获得x拥有最大数字的属性(在这个例子中,maximum应该是200):

var myArr = [{x:100,y:200},{x:200,y:500}];

//does not work:
var maximum = Math.max.apply(Math,myArr.x);
Run Code Online (Sandbox Code Playgroud)

javascript

6
推荐指数
2
解决办法
5356
查看次数

如何根据用户在ASP.NET MVC中的选择对列表进行排序?

我有一个客户列表,可以根据用户的选择从1到6个字段中进行排序.排序字段可以按任何顺序排列.如果我提前知道字段和序列,则排序很容易:

customers = customers
                .OrderBy(c => c.LastName)
                .ThenBy(c => c.City)
                .ThenBy(c => c.Age).ToList();
Run Code Online (Sandbox Code Playgroud)

我如何在运行时传递排序字段?有没有办法做这样的事情?

    string sortField1 = "State";
    string sortField2 = "City";
    string sortField3 = "Type";

    customers = customers
                .OrderBy(c => c.sortField1)
                .ThenBy(c => c.sortField2)
                .ThenBy(c => c.sortField3).ToList();
Run Code Online (Sandbox Code Playgroud)

linq asp.net-mvc dynamic-linq

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

Upsert是否违反单一责任原则?

我喜欢使用Upsert存储过程来更新记录(如果它们存在)或者如果它们不存在则插入它们.没有它们,我需要首先找出记录是否存在,然后根据结果调用两个单独的存储过程.

在我创建名为UpdateOrDeleteRow的存储过程之前,我从未真正考虑过这个问题.当我发现自己在名字中包含"Or"时,我的SRP蜘蛛感开始了,我意识到这些upotss基本上是相同的.

这是违反SRP的吗?如果是这样,是否可以接受?如果没有,我该怎么办?

我意识到SRP是一个OOP原则,而T-SQL不是OOP语言,但原理的基础似乎也应该适用于此.

sql sql-server oop design-patterns stored-procedures

5
推荐指数
2
解决办法
489
查看次数