Questions tagged «entity-framework»

4
EF Code First对所有字符串使用nvarchar(max)。这会损害查询性能吗?
我有一些使用“实体框架代码优先”创建的数据库;应用程序正常运行,总的来说,我对Code First的功能感到非常满意。根据需要,我首先是一名程序员,然后是DBA。我正在阅读有关DataAttributes的内容,以在C#中进一步描述我想要数据库做什么;我的问题是:将这些nvarchar(max)字符串放在表中会给我带来什么惩罚(请参见下面的示例)? 此特定表中有几列;在C#中,它们的定义如下: [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int ID { get; set; } public string Name { get; set; } public string Message { get; set; } public string Source { get; set; } public DateTime Generated { get; set; } public DateTime Written { get; set; } 我希望根据名称,来源,生成的和书面查询和/或排序。我希望“名称和源”的长度为0至50个字符,偶尔最多为150个字符。我希望此表的开头很小(<100k行),但随着时间的推移会显着增长(> 1m行)。显然,消息可能大小不一,可能不会被查询。 我想知道,是否将我的“名称”和“源”列定义为nvarchar(max)当我从未期望它们大于150个字符时对性能产生影响?

2
为什么会出现async_network_io等待类型?
上周,我们的数据库发生了一些奇怪的事情。突然,该应用程序对无法保存新实体等的用户阻止了。在查看了SQL Server的活动监视器(带有兼容模式2005的2008)之后,我看到了以下三个条目: 一段时间后,用户获得连接超时。当我杀死进程64时,它们可以再次正常保存。 问题在于,即使有代码可以防止这种情况发生,他们试图在块中保存的实体也多次插入数据库(最多3次)(数字列必须唯一但没有约束) ...检查发生在代码中)。 我们使用实体框架6.0。 你们谁知道为什么和何时出现这些ASYNC_NETWORK_IO等待类型,以及如何避免它们? 它们到底是什么意思?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.