Tag: linq to sql

在LINQ to SQL中是否存在“for xml path”等价物?

我有一个博客条目表,一个标签表,以及一个将标签与博客条目相交的表。 我想将博客条目的标记汇总到逗号分隔的字符串中,以便在同一结果集中返回。 这就是我在SQL中的表现: select be.Title ,Tags = lower(( select stuff(( select distinct ‘,’ + bc.Category from BlogEntryCategory bec join BlogCategory bc on bc.BlogCategory_ID = bec.BlogCategory_ID where bec.BlogEntry_ID = be.BlogEntry_ID for xml path(”)),1,1,”) ) ) from BlogEntry be 我正在使用xml路径来滚动我的标签,我正在寻找使用LINQ执行此操作的等效方法。

Linq指定的类型“string”不是有效的提供者类型

使用Linq调用传递单个字符串的存储过程,存储过程返回包含字符串和int的数据集行。 码: PESQLDataContext pe = new PESQLDataContext(strConnStr); pe.ObjectTrackingEnabled = false; gvUnitsPassed.DataSource = pe.PassedInspection(Line); gvUnitsPassed.DataBind(); pe.dispose(); 当代码运行时,下面会调用exception:在IExecuteResult result =语句中抛出exception:Enclosed是designer.cs文件中的结果类。 [Function(Name = “dbo.PassedInspection”)] public ISingleResult PassedInspection([Parameter(Name = “Model”, DbType = “VarChar(4)”)] string model) { IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), model); return ((ISingleResult)(result.ReturnValue)); } public partial class PassedInspectionResult { private string _Date; private int _Passed; public PassedInspectionResult() { […]

使用LINQ2SQL在ASP.NET MVC中跨各种模型存储库共享数据上下文

我的应用程序中有2个存储库,每个存储库都有自己的datacontext对象。 最终结果是我尝试将从一个存储库检索到的对象附加到从不同存储库检索到的对象,从而导致exception。

无法识别为刷新指定的对象

我有这样的更新function: public void Update(HomeBanner homebanner) { homebanner.EnsureValid(); DataSource.DataContext.Refresh(System.Data.Linq.RefreshMode.KeepCurrentValues, homebanner); DataSource.DataContext.SubmitChanges(); } 我写了一个更新控制器 [AcceptVerbs(HttpVerbs.Post)] //[ValidateAntiForgeryToken] [ValidateInput(false)] public ActionResult ManageImages(int ? id,FormCollection form) { HomeBanner homebanner= BannerRepository.RetrieveById(id); this.TryUpdateModel(homebanner); string photoName = saveImage(“photo”); if (photoName != string.Empty) homebanner.ImageID = photoName; BannerRepository.Update(homebanner); return RedirectToAction(“list”, “Admin”); } 然后是观点: Manage Images Chọn vị trí: Chọn hình Liên kết 它也获取数据,但更新步骤不成功:它标记在这里 DataSource.DataContext.Refresh(System.Data.Linq.RefreshMode.KeepCurrentValues, homebanner); […]

使用LINQ加速查询

我将大约350行(带有一些数据收集)从MS SQL Server传输到iSeries进行处理。 我觉得这个过程太慢了,差不多一分钟左右。 我在做LINQ2SQL中的所有MS SQL。 以下是我目前正在做的基础知识: 收集所有车辆主数据以一次一个地处理。 SUM()车辆的燃料使用量 SUM()车辆用油量 SUM()车辆使用的零件 SUM()按车辆加工 SUM()车外维修 SUM()车辆事故成本 我意识到这是很多查询,但大多数都是来自MS SQL Server中的不同表。 所有这些都需要至少一次加入。 我正在考虑将一个查询和外部维修和事故成本中的油和零件加入到一个查询中,因为这两个查询都存储在同一个表中,看看是否能提高性能。 你有什么其他的建议? 请注意,这是供应商提供的产品,我宁愿不创建任何尚未存在于数据库中的存储过程或视图(基本上没有)。 更新:我有另一篇文章,研究提高速度的替代方案。

如何在一个LINQ请求中使用两个不同的数据上下文?

任何人都可以帮助我:如何在一个LINQ请求中使用两个不同的数据上下文? using (var db = new DataMapDataContext(Connection)) { using (var dbAdd = new DataMapDataContext(ConnectionAdd)) { return (from i in dbAdd.ITEMs join p in db.U_OTT_PINs on i.ITEMNO equals p.PIN_CODE where p.PIN_TYPE == Utils.PinItem select … } } 可能吗? 更新: 我解决了我的问题,但没有解决不同的数据上下文: var listPinnedItems = new List(); using (var db = new DataMapDataContext(Connection)) { listPinnedItems = (from lpi […]

将“TOP 1”添加到sql语句会显着提高性能吗?

在SQL查询中,添加“TOP 1” SELECT TOP 1 [values] FROM [TABLE] where [TABLE].Value = “ABC” 当我知道这些记录中只有一个时,我会提高性能吗? 具体来说,我正在考虑LinqToSql和方法之间的区别.Single(…)和.First(…) ,其中.First(…)将TOP 1添加到生成的sql中。 LinqToSql已经感觉很慢,所以我只是想办法让它更快。 编辑: [TABLE].Value可能是某些情况下的外键。

Linq:使用三个嵌套级别进行查询

所以我有三张桌子: CREATE TABLE tblUser ( [pkUserID] [int] IDENTITY(1,1) NOT NULL, [userName] [varchar](150) NULL, [fkCompanyID] [int] NOT NULL ) CREATE TABLE tblCompany ( [pkCompanyID] [int] IDENTITY(1,1) NOT NULL, [name] [varchar](255) NULL ) CREATE TABLE tblSystem ( [pkSystemID] [int] IDENTITY(1,1) NOT NULL, [systemName] [varchar](150) NULL, [fkCompanyID] [int] NULL ) 这些是我的数据传输对象: public class SystemDTO { public int pkSystemId […]

LINQ to SQL查询在结果中具有错误的值

我有一个LINQ查询具有不正确的结果,但是当我分析生成的SQL时,SQL结果是正确的。 ApplicationsEntities context = new ApplicationsEntities(); var query = from documentation in context.Documnetations where documentation.Application_Version_ID == app_ver_id orderby documentation.Name select documentation; docs = query.ToList(); 我得到两个重复:“如何安装Office 2003”和“如何安装Office 2003” 下面是配置文件SQL的输出: 从生成的SQL中分配结果会发生什么?

Linq to SQL的unit testing实践

我试图围绕unit testing,我遇到了一个我不确定的行为: “可以备份库存” 基本上,“库存”表被复制到“InventoryHistory”表,并给出备份发生的时间戳(“HistoryDate”)。 这是备份库存的代码: DateTime historyDate = DateTime.Now; MyDataContext db = new MyDataContext(); db.GetTable().InsertAllOnSubmit( db.GetTable() .Select(i => new InventoryHistory { ID = i.ID, ItemName = i.ItemName, /* etc, etc, etc */ HistoryDate = historyDate }) ); 我的问题是: 应该/可以将此行为分解为更小的可unit testing部件吗? 由于我正在测试专用测试数据库,我应该使用模拟工具并遵循任何“存储库”的抽象工厂模式吗?