我需要处理一个大文件,大约400K行和200M.但有时我必须自下而上处理.我怎样才能在这里使用迭代器(yield return)?基本上我不喜欢在内存中加载所有内容.我知道在.NET中使用迭代器更有效.
我喜欢使用Linq2SQL通过eager-loading来获取数据.代码类似于:
DataLoadOptions options = new DataLoadOptions();
options.LoadWith<Product>(c => c.ProductCompanies);
options.LoadWith<Product>(c => c.OrderDetails);
db.LoadOptions = options;
IEnumerable<Product> products = db.Products.ToList<Product>();
Run Code Online (Sandbox Code Playgroud)
我检查它生成了超过1个SQL查询,如我所料.实际上它只对Product和OrderDetails进行急切加载,并且逐个查询ProductCompany.我这里做错了吗?或者它是Linq2SQL问题?我们有任何解决方法吗?
非常感谢!
更新: 我从SQL事件探查器检查sql.我发现Leppie和Ian都是正确的.它们在一次交易中受限制.但是当我将其设置为延迟加载时,它会打开多个连接.
我正在播放Joel Abrahamsson的博客和Daniel Cazzulino的博客中的静态反射代码.但我发现他们的表现有点慢,甚至与使用"魔术弦"的反射相比.
int iterations = 1000000;
watch.Start();
for (int i = 0; i < iterations; i++)
{
var propertyOfName = Reflect<Employee>.GetProperty(c => c.Name);
}
watch.Stop();
Console.WriteLine("[Reflector]: " + watch.ElapsedMilliseconds.ToString());
watch.Reset();
watch.Start();
for (int i = 0; i < iterations; i++)
{
var propertyName = typeof (Employee).GetProperty("Name");
}
watch.Stop();
Console.WriteLine("[Regular Reflection]: " + watch.ElapsedMilliseconds.ToString());
watch.Reset();
watch.Start();
for (int i = 0; i < iterations; i++)
{
var propertyName = StaticReflection.GetMemberName<Employee>(c => c.Name);
}
watch.Stop();
Console.WriteLine("[StaticReflection]: " …Run Code Online (Sandbox Code Playgroud) 查询SQL Server 2005数据库时遇到一个简单的问题.我有一个名为Customer and Products(1-> M)的表.一个客户拥有最多2个产品.而不是输出
客户名称,产品名称......
我喜欢输出为
CustomerName,Product1Name,Product2Name ...
有人能帮助我吗?
谢谢!
我认为将视图中的数据从SQL Server 2005导出到固定宽度的文本文件是一项非常简单的任务.但精灵很痛苦.格式不正确.有谁知道如何处理它?或者更好的方法吗?
对于有i4o或PLINQ经验的人,我有一个问题.我有一个需要查询的大对象集合(大约400K).逻辑非常简单明了.例如,有Person对象的集合,我需要找到具有相同的名字,姓氏,datebirth,或名字/姓氏的首字母等相匹配的人它只是使用LINQ to对象耗时的过程.
我想知道i4o (http://www.codeplex.com/i4o)
或PLINQ可以帮助提高查询性能.哪一个更好?如果那里有任何方法.
谢谢!
我和VS 2005和VS 2008并排安装.有趣的是,我可以在VS 2005下使用开发服务器.但是当我在VS 2008中尝试时,它给了我一个错误"无法连接到ASP.NET开发服务器".
任何的想法?
谢谢!
我试图在ASP.NET MVC应用程序中使用带有jQGrid的Telerik MVC扩展.但我发现他们不能很好地互相玩耍,这意味着我不能让他们在一个视图中一起工作.不确定为什么?我想这是因为js文件的位置.JqGrid需要将js库放在Head中,但Telerik需要在Body标记结束之前根据其指令.我试着移动这段代码,见下文.Telerik MVC扩展不再适用.有人让他们顺利工作吗?实际上,我可以使用Telerik构建的JQuery UI.但Telerik的流畅API看起来更好.
<%
Html.Telerik().ScriptRegistrar()
.Render();
%>
Run Code Online (Sandbox Code Playgroud)
更新:
现在,我应该能够让他们一起工作.
首先,在Site.Master中,在Telerik脚本渲染后添加另一个内容,如:
<%
Html.Telerik().ScriptRegistrar()
.Render();
%>
<asp:ContentPlaceHolder ID="ScriptContent" runat="server" />
Run Code Online (Sandbox Code Playgroud)
然后,在View中,在ScriptContent中添加特定于view的脚本.一切正常.
我有一张约500K记录的表.
我需要将数据导出到文本文件中.
最好的方法是什么?.NET任务并行或异步是否有帮助?
我想使用Parallel来创建多个文件,然后组合在一起.
那是好方法吗?非常感谢您的建议.
c# ×4
.net ×2
linq ×2
sql-server ×2
asp.net ×1
asp.net-mvc ×1
io ×1
jquery ×1
jquery-ui ×1
linq-to-sql ×1
plinq ×1
reflection ×1
sql ×1
telerik ×1