Tag: linq to sql

如何使用递归编程填充包含许多类别的列表框

我有一个类别表,设置为允许无限数量的子类别级别。 我想模仿以下内容: 应该澄清的是,子类别可以有子类别。 例如父母 – > 1级 – > 2级 – > 3级等 我的类别表有两列, CategoryName和ParentID 。 在为产品分配正确的类别时,将使用此列表框。 我怎么写这个? 编辑 为了回应thedugas我不得不修改你的答案以适应我的情况。 我发现了一些需要修复的错误,但下面是一个最终的,有效的解决方案。 protected void Page_Load(object sender, EventArgs e) { using (DataClasses1DataContext db = new DataClasses1DataContext()) { var c = db.Categories.Select(x => x); List categories = new List(); foreach (var n in c) { categories.Add(new Category() { […]

如何重构多个类似的Linq-To-Sql查询?

在downvoting或closing之前阅读:这与我之前的一个问题几乎完全相同,只是为了将上一个问题重新改写为Linq-To-Sql范围。 上一个问题中包含的所有答案都对Linq范围有效,但在Linq-To-SQL范围内无效。 假设我想要重构以下两个Linq-To-SQL查询: var someValue1 = 0; var someValue2= 0; var query1 = db.TableAs.Where( a => a.TableBs.Count() > someValue1 ) .Take( 10 ); var query2 = db.TableAs.Where( a => a.TableBs.First().item1 == someValue2) .Take( 10 ); 请注意,只有Where参数更改。 有什么方法可以将查询放在方法中并将Where参数作为参数传递? 当我尝试枚举结果时, 上一个问题中发布的所有解决方案都已在运行时尝试失败。 引发的exception是:“用于查询运算符的不支持的重载’Where’”

订购linq查询

对于我的通用网格,我目前这样做是为了激活排序: Elements.OrderBy(column.SortExpression).AsQueryable(); 其中SortExpression的类型为Func和column是generics类Column 我在这样的控制器中设置了SortExpression: new Column{Key = “ShippingDate”, SortExpression = e => e.ShippingDate} ‘OrderBy’导致执行sql语句,这是我不想要的。 所以我试图用这个替换它: Elements = from element in Elements orderby column.SortExpression select element; 哪个不会触发sql执行。 现在,当然column.SortExpression应该是另一种类型。 只有我无法确定它应该是什么类型以及如何在控制器中的generics类上设置它。 我仍然可以使用某种通用的强类型方式设置SortExpression。 有关如何通过表达式在应用程序中的其他位置进行排序的任何建议,而不是在将顺序应用于IQueryable时执行sql? @Ewwicker: 这有效: Expression<Func> sortexpression = e => e.BirthDate; var db = new NorthwindDataContext(); var query = from e in db.Employees select e; query = query.OrderBy(sortexpression); […]

错误 – 具有多个数据库连接的LINQ / TransactionScope

我有一个helluva时间将几个事务包装到同一个SQL Server上的两个不同的数据库。 我最初遇到网络DTC访问问题,我解决了这个问题。 现在,我继续得到的错误是“与底层事务管理器的通信失败了”。 我们在数据库中有一些客户配置文件,当这些配置文件过时时,我们希望将它们移动到“存档”数据库进行存储。 此举简单(幽默斜体)将它们添加到存档数据库并从主/实时数据库中删除它们。 我为每个数据库都有一个DataContext。 下面的代码执行Add,然后在尝试使用第二个DataContext时在Delete上获取错误。 我只和LINQ合作了几个月,过去几天我一直在搜索文章。 我想知道我的代码是否有任何问题,或者是否仍然没有正确配置DTC或??? 我们在VMware上运行我的工作站和服务器。 – 工作站是Windows 7 SP1 – 服务器是Windows和SQL Server 2008R2 “移动”的常规: private int MoveProfileToArchiveDB( int iProfileId ) { int rc = RC.UnknownError; // get new Archive profile object ProfileArchive.ProfileInfo piArchive = new ProfileArchive.ProfileInfo(); // ‘Live’ DataContext using ( ProfileDataContext dbLive = new ProfileDataContext() ) { // […]

创建转换为SQL的方法?

在我正在使用的应用程序的数据库中,有一个记录具有“日期”字段。 在代码中的许多地方,我们需要将其转换为财政年度,以进行分组,选择和过滤。 以下是一些查询可能如下所示的示例: var query = from r in DB.records let fy = r.Date.Month >= 10 ? r.Year + 1 : r.Year where fy = 2010 select r; 现在我知道我可以编写一个Expression方法来使用相同的filter ,但是如果我想用它来选择和分组呢? 我不想在所有查询中一遍又一遍地写第二行。 能够这样做会很高兴: var query = from r in DB.records let fy = r.Date.GetFY() where fy = 2010 group r by fy into g select g.Count(); […]

LinqToSql查询中的条件快捷方式

这里有一点LinqToSql GOTCHA: // Returns the number of counties in a state, // or all counties in the USA if the state is null public static int CountCounties(State s) { var q = from cy in County.GetTable() // my method to get the ITable where (s == null || s.Code == cy.StateCode) // shortcut OR operator, […]

LINQ to SQL可以生成包含ISNULL函数的TSQL吗?

我想知道是否有人明确知道LINQ to SQL是否具有生成包含ISNULL函数的TSQL代码的能力? 我知道在查询中使用coalesce运算符( ?? ): from o in Table where (o.Field ?? 0) > 0 select o 将导致LINQ to SQL发出COALESCE函数: SELECT [t0].[Field] FROM [Table] AS [t0] WHERE (COALESCE([t0].[Field],0)) > 0 并且,在查询中使用条件运算符( ?: 🙂 from o in Table where (o.Field == null ? 0 : o.Field) > 0 select o 将导致TSQL包含CASE语句: SELECT [t0].[Field] FROM [Table] […]

这个LINQ Expression如何工作?

我知道这段代码在做什么,但我不确定语法。 它似乎不符合“标准”格式。 它主要是LINQ吗? return db.Subjects.SingleOrDefault(s => s.ID == ID); 第一部分是有道理的,但它是括号中我不明白的部分。 如何s不声明s情况下使用s ? 我们如何将逻辑放入方法调用中?

使用LINQ to SQL时避免连接超时的最佳实践

我需要知道在.net应用程序中使用LINQ to SQL时特别是从数据访问层或层返回IQueryable时避免连接超时的最佳实践。 我得到“Timeout expired。在从池中获取连接之前已经过了超时时间。这可能是因为所有池连接都在使用中并且达到了最大池大小。” 测试我的asp.net应用程序进行webstress测试时出错?

使用Linq to SQL从数据库中检索图像

在我的数据库中,我将图像存储在“图像”数据类型中,显示为二进制代码。 我现在想要从一列中检索所有图像,并使用C#将它们显示在asp.net页面上。 databaseDataContext db = new databaseDataContext(); var images = from Picture p in db.Pictures select p.pictureThumb; 然后我用这个: foreach (Picture p in images) { galleryImages.Controls.Add(p); } 但这不起作用,因为Binary无法转换为Picture。 我用谷歌搜索了这个,发现我必须投射到Byte然后成像? 我找不到如何做到这一点的例子。