在您的C#源代码或存储过程中保留SQL有哪些优点/缺点?我一直在与一位朋友讨论我们正在开发的一个开源项目(C#ASP.NET论坛).目前,大多数数据库访问都是通过在C#中构建SQL内联并调用SQL Server DB来完成的.所以我试图确定哪个特定项目最好.
到目前为止,我有:
代码中的优点:
存储过程的优点:
在Stack Overflow测试期间,我看到了很多关于LINQ SQL的问题,但对它一无所知......这听起来很有趣.
什么是LINQ,我该如何开始?
链接指南或文档奖金:)
PS:我是一名长期使用Datatables和Parameterized SQL的C#开发人员
鉴于前提:
为什么人们使用linq来sql?
我一直看到关于linq到sql的问题,我想知道我是否遗漏了一些东西.
我已经听过很多关于预编译存储过程的优点的讨论.但是LINQ和选择,插入,更新,删除的存储过程之间的实际性能差异是什么?有没有人进行任何测试,看看是否有任何重大差异.如果更多的交易有所作为,我也很好奇.
我的猜测是LINQ语句在第一个事务之后被缓存,并且性能可能几乎相同.思考?
我目前正在和一个正在讨论LINQ查询性能的人进行辩论.
有没有人对此进行过任何科学测试?
如果没有,出于性能原因,你必须用SQL查询替换LINQ的轶事证据将帮助我说明问题.
我需要操纵100,000到200,000条记录.
我正在考虑使用LINQ(到SQL)来做到这一点.
我从经验中知道过滤数据视图非常慢.
那么LINQ有多快?
你能否告诉我你的经历以及它是否值得使用,或者我会更好地使用SQL存储过程(繁重且不太灵活)?
在成千上万条记录中,我需要查找数据组然后处理它们,每组有大约50条记录.
在我的组织中,我们必须回答一个单独的DBA小组来做出像使用LinqToSQL这样的决定.您认为使用L2S而不是存储过程的一些最佳原因是什么?
我似乎是少数,但说实话,我对linq感到不舒服,并没有看到我的个人发展有任何好处(不是说没有任何好处,只是基于我的情况的个人意见).
我构建了Web应用程序(.net,.net mvc),我喜欢在存储过程中使用部分数据层.我喜欢sprocs的一件事是我可以生成整个数据库到脚本,然后在高级别扫描我的查询,我可能添加的可读查询.
对于那些不喜欢linq的人,你的理由是什么?是缺乏知识/学习曲线还是没有使用它的商业案例?
如果这是一个重复的问题,请道歉,但在执行Linq2Sql中的SQL语句与执行存储过程之间是否存在真正的区别?
有什么好处?(如果有的话)
我在我的项目中使用Linq-To-Entity.但是,我在使用Stored Procedure或LINQ to Table or View在某些情况下犹豫不决.不过,我一般喜欢使用LINQ,因为的普莱语法.我搜索过谷歌,但没有找到详细的问题.
我们考虑一下这段代码:
using (NorthwindEntities db = new NorthwindEntities())
{
var custs = from c in db.Customers where c.City == "London" select c;
var edus = from c in db.Educations where c.Education != "2" select c;
// ... and so on
}
Run Code Online (Sandbox Code Playgroud)
问题:
1.它是否为每个查询打开一个新连接?如果是,那么不建议单独使用上述查询?
2.另外,你能否告诉我有什么情况我必须使用存储过程而不是LINQ?
可能重复:
LINQ-to-SQL与存储过程?
Linq在存储过程
与存储过程相比,使用LINQ有何优势?
所以我有一个SQL查询跟随
SELECT P.Date, P.CategoryName, P.ProductName, SUM(Quantity) Quantity, SUM(Sales) TotalSales, IsLevelThree
FROM Products P LEFT JOIN LevelThreeTracking LTT
ON P.Date = LTT.Date AND P.CategoryName = P.CategoryName AND P.SecurityID = LTT.SecurityID
WHERE P.Date = '12-31-2007' AND P.CategoryName= 'CategoryName'
GROUP BY P.Date, P.CategoryName, P.ProductName, LTT.IsLevelThree
HAVING SUM(Quantity) <> 0
ORDER BY P.ProductName
Run Code Online (Sandbox Code Playgroud)
我正在尝试将其转换为C#LINQ语法,并使用2个表进行DataContext设置.我已经尝试了几次(下面的最新版本)但是生成的sql看起来非常复杂并且超时.dtpBeginning是一个DateTimePicker.
var results = from p in dbFAS.Products
group p by new {p.Date, p.CategoryName, p.ProductName}
into gp
join ltt in dbFAS.LevelThreeTracking on
new {gp.Key.Date, gp.Key.CategoryName, gp.Key.ProductName} equals
new {ltt.Date, ltt.CategoryName, ltt.ProductName} …Run Code Online (Sandbox Code Playgroud) linq ×8
linq-to-sql ×5
.net ×4
sql ×3
c# ×2
sql-server ×2
.net-3.5 ×1
methodology ×1
performance ×1