使用LINQ to SQL很可能不会像实体框架那样获得尽可能多的活动开发,您认为最好切换到实体框架吗?
我个人发现EF非常笨重而且难以使用,而LINQ to SQL感觉非常自然.
编辑:我最近在我的博客上发表了一篇关于我对这个潜在决定的感受的文章......
运行此查询的框是在数据中心中运行的专用服务器.
AMD Opteron 1354四核2.20GHz 2GB内存Windows Server 2008 x64(是的,我知道我只有2GB内存,当项目上线时我升级到8GB).
因此,我在表格中创建了250,000个虚拟行,以真正压力测试LINQ to SQL生成的一些查询,并确保它们不会太糟糕,我注意到其中一个正在花费大量时间.
我使用索引将此查询缩短到17秒,但为了这个答案,我从头到尾删除了它们.只有索引是主键.
Stories table --
[ID] [int] IDENTITY(1,1) NOT NULL,
[UserID] [int] NOT NULL,
[CategoryID] [int] NOT NULL,
[VoteCount] [int] NOT NULL,
[CommentCount] [int] NOT NULL,
[Title] [nvarchar](96) NOT NULL,
[Description] [nvarchar](1024) NOT NULL,
[CreatedAt] [datetime] NOT NULL,
[UniqueName] [nvarchar](96) NOT NULL,
[Url] [nvarchar](512) NOT NULL,
[LastActivityAt] [datetime] NOT NULL,
Categories table --
[ID] [int] IDENTITY(1,1) NOT NULL,
[ShortName] [nvarchar](8) NOT NULL,
[Name] [nvarchar](64) NOT NULL,
Users table --
[ID] …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个提供完整或接近完整的LINQ支持的ORM.
LINQ to SQL
- 支持LINQ内部的所有内容(.Contains,Math.Log等)
- 如果不创建新的datacontext,就无法加载关系属性
ADO.NET实体框架
- 可怕的LINQ支持(许多缺少的功能).
- 出色的映射功能 - 可以使用ObjectQuery <>上的.Include方法按需加载
LightSpeed
- 很棒的LINQ支持缺少一些功能(.Contains在where中)
- 生成的一些SQL非常低效.
这些似乎都不完美,我真的希望我可以从每个中获取点点滴滴.我个人非常喜欢ADO.NET EF,除了它缺少的功能使它使用起来很令人沮丧.
我知道有些人上下赞美NHibernate而且我没有敲它,但我今天花了很多时间尝试它并且没关系但是它的LINQ支持并不是那么好.
您是否认为值得在代码质量和可维护性方面进行一些性能折衷?我记得杰夫阿特伍德的一篇文章说硬件很便宜,开发人员不是.我想我想把它改成"硬件便宜,时间不是."
我注意到我最近一直在努力的一个MVC项目,有时我会失去DAYS只是试图从我的应用程序中挤出一点额外的性能,我开始认为它不值得.我刚刚发现自己在设计ASP.NET MVC应用程序时遇到了麻烦.我喜欢IQueryable to death,因为它允许我附加到查询,所以我可以得到一些流利的代码来使用它.但是能够做这样的事情似乎在控制器/ BLL上增加了更多的责任.
所以你怎么看?在Web应用程序的情况下,你可以为可维护/更清洁的代码折衷一些性能吗?您是否认为过早地尝试优化您可以做的一切?因为正如我们所见,你无法预测所有要求.
我在IE9上遇到问题,即使页面内容完全适合,也会在打印页面上显示水平滚动条.我已经尝试了几件东西来删除它们的打印css.有没有其他人有这个问题,并找到了解决方法?
css printing internet-explorer printing-web-page internet-explorer-9
是否有可能以编程方式获取LINQ to SQL或ADO.NET Query的执行计划以显示调试信息?如果是这样,怎么样?
我正在开发一个ASP.NET MVC项目,我已经开始考虑我的缓存策略了.我试图让我的框架尽可能开放用于缓存.
根据我在Scott Hanselman播客期间听到的内容,StackOverflow.com使用页面输出缓存并将内容拉链并将其放入RAM中.这听起来像是对用户范围的缓存非常有用,但对于像个性化页面这样的东西,你必须为每个用户缓存一个版本,并且可能很快失控.
所以,对于缓存策略.哪个应该使用,输出缓存,数据缓存还是组合?我的第一个想法是两者,但就缓存依赖性而言,它听起来有点复杂.
简短版本:
你知道有什么方法可以获得一个输入按钮(提交)和一个锚标签来使用CSS和没有Javascript直观地呈现相同的内容吗?
长版:
我正在开发一个ASP.NET MVC应用程序.该站点包含用于查看或创建或更新模型的详细信息的页面.页面操作包含在表单的底部,通常包括" 更新"和" 取消"或" 编辑"," 删除"和" 列表"(如果在详细信息视图页面上).该更新,编辑和删除行为从形式到服务器的数据发布,同时取消和列表动作是/可以由适当的GET请求处理.值得注意的是,我的设计目标之一是,如果Javascript被禁用,则启用Javascript时,网站的工作方式尽可能相同.我还希望UI元素在视觉上呈现相同的元素是否导致回发或触发GET请求.
为了使表单提交在没有Javascript的情况下工作,我想我必须使用提交按钮.我用CSS重写了按钮的视觉样式,使其呈现出与SO页面顶部的"按钮"非常相似 - 平面,纯色和纯文本.我希望生成GET请求的操作可以使用锚标记来处理,但是我在使用这些标记和样式化按钮进行相同渲染时遇到了问题.对齐和字体大小似乎存在问题.我能够让它们接近但不完全相同.
编辑: 使用按钮和锚点的样式差异包括无法使字体在相对于边界框内的基线的相同位置渲染,并使边界框本身呈现相对于容器的相同大小和对齐.无论我的调整如何,事情都只有几个像素.如果你能够让它工作,请告诉我.知道它可能会让我更容易继续尝试,直到我能够让它工作.
我试过的一件事是围绕一个按钮包裹GET动作,其形状类似于表单按钮.这在Firefox中很有用,但在IE7中却没有.单击IE7中的这样一个按钮并不会将点击返回到锚点.我现在想出的是使用与所需操作相关联的method ="GET"为GET创建一个新表单.我将它包装在一个提交按钮周围,该按钮具有一个onclick处理程序,location.href该处理程序设置为所需操作的URL.这在视觉上呈现相同并且似乎有效,即使表单嵌套在另一种形式中也是如此.一个小问题是,如果Javascript被禁用,那么我的GET url包含一个?最终,而不是你想要的漂亮的干净网址.
我想知道的是,是否有其他人以不同的方式解决了这个问题,以便更好地工作(并且可能需要更少的HTML)?你还有其他想法吗??当Javascript关闭时,当请求作为帖子提交时,有什么方法可以修复GET URL吗?
详细信息视图中的示例代码.我意识到我可以(并且可以说应该)通过javascript添加onclick处理程序,但是当我内联时代码实际读取更好.我正在使用HtmlHelper扩展来生成下面的所有标记.我重新格式化它以提高可读性.
<form action="../Edit/2" class="inline-form" method="get">
<input class="button"
onclick="location.href='../Edit/2';return false;"
value="Edit"
type="submit" />
</form>
<form action="../Delete/2" class="inline-form" method="post">
<input class="button"
value="Delete"
type="submit" />
</form>
<form action="../List" class="inline-form" method="get">
<input class="button"
onclick="location.href='../List';return false;"
value="List Donors"
type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud) 我有一个包含的ViewPage <% Html.RenderAction<MyController>(c => c.SidebarStats()); %>.在操作SidebarStats的控制器操作上,我有一个OutputCache操作过滤器,只缓存页面的那一部分.但是,整个页面正在缓存,而不仅仅是该操作.
我记得在某个地方看到这可能是ASP.NET MVC的一个错误,虽然我不确定.我目前正在使用ASP.NET MVC RC1,IIS7,Windows Server 2008和.NET 3.5 SP1.
如何为Windows Phone 7创建实时磁贴?我很想知道,因为我基本上希望每1-5分钟有一次文本在实时图块上更新,用户可以只看一眼.这个时机可以吗?
asp.net-mvc ×4
linq-to-sql ×4
asp.net ×3
sql ×3
.net ×2
c# ×2
caching ×2
css ×2
ado.net ×1
architecture ×1
html ×1
navigation ×1
orm ×1
outputcache ×1
performance ×1
printing ×1
silverlight ×1