小编Sco*_*ord的帖子

使用Linq to SQL,如何在表中找到列的最小值和最大值?

我想找到一个最快的方法来获得一个表中的列的最小值和最大值,其中只有一个Linq to SQL往返.所以我知道这将在两个往返中起作用:

int min = MyTable.Min(row => row.FavoriteNumber);
int max = MyTable.Max(row => row.FavoriteNumber);
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用,group但我没有group by条款,我想聚合整个表格!如果没有分组,我就不能使用.Min.我试过这个:

from row in MyTable 
group row by true into r 
select new { 
    min = r.Min(z => z.FavoriteNumber), 
    max = r.Max(z => z.FavoriteNumber) 
}
Run Code Online (Sandbox Code Playgroud)

但是这个疯狂的组子句似乎很愚蠢,而它所做的SQL比它需要的更复杂.

那么,有没有办法只是得到正确的SQL?

编辑:这些家伙也失败了:Linq to SQL:如何在没有小组的情况下聚合?......如果真的没有答案,LINQ设计师的疏忽.

编辑2:我在SQL Server Management Studio执行计划分析中查看了我自己的解决方案(使用无意义的常量group by子句),它在我看来它与生成的计划完全相同:

SELECT MIN(FavoriteNumber), MAX(FavoriteNumber)
FROM MyTable
Run Code Online (Sandbox Code Playgroud)

因此,除非有人能够提出一个更简单或同样好的答案,我想我必须将其标记为自己回答.思考?

c# sql linq-to-sql

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

为什么Entity Framework的EF迁移添加迁移步骤需要数据库连接字符串?

我正在尝试使用和理解EF迁移(使用EF 4.3.1,Code First).为了支持一个新的变化,我必须使用这样的命令:

Add-Migration MyMigration
   -ConnectionString "Data Source=.;Initial Catalog=mydb;" 
   -ConnectionProviderName "System.Data.SqlClient"
   -StartUpProjectName MyWebsite 
   -ProjectName MyEF.Migrations
Run Code Online (Sandbox Code Playgroud)

为什么Add-Migration需要连接字符串数据? Update-Database需要一个,这是有道理的.但是,Add-Migration是否具有DbContext和Configuration所需的一切?

这不仅仅是空闲的奇迹,给它一个数据库是非常困惑的,因为我们有一个"多租户"的东西,所需的数据库是灵活的,可能会从请求变为请求,更不用说在静态编译时.因此,如果Add-Migration实际上正在使用该数据库,我们就会遇到问题.

更新:我们放弃了EF迁移并改为使用Fluent Migrator,并且很高兴.它更快,更快,甚至计算我们必须写两次事物(一次用于EF对象,一次用于迁移),并且它没有在这个问题中讨论的问题.

entity-framework-4 ef-migrations entity-framework-4.3

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

在组织上,在使用实体框架代码优先时,我应该在哪里放置常见查询?

我正在使用EF 4.1 Code First布局一个新的数据层,从较旧的自制数据层迁移.

我已经设置了两个程序集,一个用于我的上下文,一个用于所有POCO代码的第一个类.

我有一些业务逻辑,例如,对一个表(或几个表)的查询,这些表在几个不同的地方使用. 我应该把它放在哪里?

它不能进入​​POCO类,因为它连接了几个表,因此需要一个上下文.它可能会进入上下文,但是上下文会因数百个无组织的查询而变得臃肿. 所有业务逻辑都有共同的模式或安排吗?

.net entity-framework entity-framework-4.1

23
推荐指数
1
解决办法
7398
查看次数

SQL:如何从单个列中选择满足多个条件的单个id("row")

我有一个非常狭窄的表:user_id,ancestry.

user_id列是自解释的.

祖先列包含用户祖先欢呼的国家/地区.

用户可以在表上有多行,因为用户可以拥有来自多个国家/地区的祖先.

我的问题是:如何选择其祖先来自多个指定国家/地区的用户?

例如,向我展示所有拥有来自英格兰,法国和德国的祖先的用户,并返回符合该标准的每个用户1行.

什么是SQL?

 user_id     ancestry

---------   ----------

    1        England
    1        Ireland
    2        France
    3        Germany
    3        Poland
    4        England
    4        France
    4        Germany
    5        France
    5        Germany
Run Code Online (Sandbox Code Playgroud)

在上述数据的情况下,我预计结果为"4",因为user_id 4具有来自英格兰,法国和德国的祖先.

提前致谢.

PS澄清:是的,user_id/ancestry列创建一个唯一的对,因此不会为给定用户重复一个国家/地区.

PPS我在寻找来自3个国家的用户 - 英格兰,法国和德国(以及这些国家是任意的).

PPPS我不是在寻找特定于某个RDBMS的答案.我想"一般地"回答这个问题.

我满足于为每个查询重新生成where子句,前提是可以通过编程方式生成where子句(例如,我可以构建一个函数来构建WHERE/FROM - WHERE子句).

sql select

23
推荐指数
4
解决办法
10万
查看次数

绝对URL的定义是什么(完全限定?)

有(至少)三种方式链接到资源:

  1. href="foo/bar.html"
  2. href="/foo/bar.html"
  3. href="http://example.com/foo/bar.html"

第一个是"相对网址",没问题.但我看到(2)和(3)都被称为"绝对网址".这被正确地称为"绝对网址",另一个的正确名称是什么?

(参考相关标准或其他官方文件的奖励积分.)

url nomenclature

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

什么是"operator <<"?

我知道大多数运营商的名字,但不知道什么operator<<operator>>被称为.

operator=() // the assignment operator
operator==() // the equality of comparison operator
operator++() // the increment operator
operator--() // decrement operator etc.
operator<() // the less-than operator
Run Code Online (Sandbox Code Playgroud)

等等......

c++ operators

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

我应该何时指定CurrentCulture或InvariantCulture以及何时应该将其指定为未指定?

指定CurrentCulture或InvariantCulture而不指定文化的最佳做法是什么?

例如,根据我的阅读,如果您正在进行序列化,则需要使用InvariantCulture作为指定数据值的规范表示的方法.这是基于文化的字符串操作的相对较小的百分比.

我发现它很长,很冗长,而且大部分时间都是丑陋的,每次我都说出来,比如说:

var greeting = string.Format(CultureInfo.CurrentCulture, "Hello ", userName); 
Run Code Online (Sandbox Code Playgroud)

然而,我的团队最近开启了FxCop,现在总是在每个地方都使用CultureInfo.结合简洁性,可读性和功能性的最佳技术是什么?

一些好的阅读材料:

c# globalization culture cultureinfo currentculture

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

什么是独立协会和外国关键协会?

可能重复:
代码优先:独立关联与外键关联?

在EF 4或EF 5 Code First中,什么是"独立关联"以及什么是MSDN外键与独立关系使用的"外键关联" - 实体框架5有哪些改进?(重点补充):

2.4.1使用外键关联降低视图生成成本

我们已经看到了一些案例,其中模型中的关联从独立关联切换到外键关联 大大改善了视图生成所花费的时间.

所以 - 现在我知道要使用哪个.只要我知道它们是什么以及如何转换成它!那么我的问题是,您如何定义这些条款?什么流利/注释/约定调用每个?

c# entity-framework-4 entity-framework-5

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

使用IQueryable <T>的设计模式

随着.NET 3.5和IQueryable<T>界面的引入,将出现新的模式.虽然我已经看到了规范模式的许多实现,但我还没有看到使用这种技术的许多其他模式.Rob Conery的Storefront应用程序是另一个使用IQueryable<T>它可能导致一些新模式的具体示例.

有用的IQueryable<T>界面出现了什么样的模式?

linq design-patterns iqueryable .net-3.5

14
推荐指数
2
解决办法
7372
查看次数

是否有用于可控XML格式的样式表或Windows命令行工具,特别是将属性设置为每行一个?

我正在寻找一个XSLT或命令行工具(或者可以作为命令行工具的C#代码等),用于执行XML漂亮打印的Windows.具体来说,我想要一个能够将属性一对一地放置的东西,例如:

<Node>
   <ChildNode 
      value1='5'
      value2='6'
      value3='happy' />
</Node>
Run Code Online (Sandbox Code Playgroud)

它不一定非常像,但我想将它用于一个XML文件,该文件具有包含许多属性的节点,并将它们分布在多行中,使它们更易于阅读,编辑和文本差异.

注意:我认为我的首选解决方案是可以通过C#方法传递的XSLT表,尽管Windows命令行工具也很好.

xml pretty-print xml-formatting

13
推荐指数
3
解决办法
6419
查看次数