Tag: linq to sql

linq to sql返回boolean

我有一个表包含以下列的Fruits UserID | FruitID 我想validationUserID是否已在FruitID上获得授权,所以我写的是这样的: var IsAuthorized = (from f in MyDC.Fruits where f.UserID == TheUserID && f.FruitID == TheFruitID select f.FruitID).SingleOrDefault(); 因此,如果用户被授权,则查询返回ID,如果未经授权,则返回null。 然后我检查返回值是否为null,然后根据返回的值设置bool。 我想要做的是返回bool:如果用户被授权,那么它应该返回true。 如何修改查询以返回布尔值? 谢谢。

Linq查询使用包含而不包含

我试图从数据库中获取记录,因为它应该获取记录,其中name包含“searchKey”,而名称不在excludeTerms数组中,并且逗号分隔。 我怎么能在Linq做到这一点? Rows = (from u in DB.Clients where u.Name.Contains(searchTerm) && !u.Name.Contains(string.Join(“,”, excludeTerms.Select(s => “‘” + s + “‘”).ToArray())) select new ClientModel { Name = u.FullName, Id = u.Id, }).Take(5).ToList(); 其中excludeterma包含假设的元素列表 1)Sandy 2)Mandy 3)Larry etc List excludeTerms = new List();

使用DataContext Attach方法更新实体时更新检查’问题

我正在尝试在通用存储库中创建一个更新方法作为LINQ to SQL数据访问层。 我有这样一个实体: [Table] public class Product { [Column(IsPrimaryKey = true, IsDbGenerated = true, DbType = “Int NOT NULL IDENTITY”)] public int Id { get; private set; } [Column(UpdateCheck = UpdateCheck.Never)] public string Name { get; set; } …. } 我为所有为id执行的字段设置了Update Check = true @jeff Atwood在这篇文章中建议我将attach方法中的asModified属性设置为true,我在本文中发现如下: public void Update(T entity) { _db.GetTable().Attach(entity, true); _db.SubmitChanges(); […]

如何制定IQueryable来查询递归数据库表?

我有一个像这样的数据库表: Entity ——————— ID int PK ParentID int FK Code varchar Text text ParentID字段是一个外键,同一个表中有另一个记录(递归)。 所以结构代表一棵树。 我正在尝试编写一个方法来查询此表,并根据路径获取一个特定的实体。 路径将是表示实体的Code属性和父实体的字符串。 因此,示例路径将是”foo/bar/baz” ,这意味着Code == “baz”的一个特定实体,父Code == “bar”和父Code == “foo”的父Code == “foo” 。 我的尝试: public Entity Single(string path) { string[] pathParts = path.Split(‘/’); string code = pathParts[pathParts.Length -1]; if (pathParts.Length == 1) return dataContext.Entities.Single(e => e.Code == code && e.ParentID […]

LINQ平均时间跨度?

我有一个数据库表,其中包含事件的开始时间和结束时间的条目。 我想拿这些条目来查找事件的平均长度。 减法没问题。 但是,当我试图获得平均值时,编译器会抱怨。 这是我当前的LINQ查询: public TimeSpan? getAverageTime() { return (from EventTime in db.EventTimes where EventTime.EventTimesID > 0 select (EventTime.TimeEnd – EventTime.TimeStart)).Average(); } 我也试过.Sum()和.Aggregate()这样我就可以有一些东西可以使用,但没有一个被接受。 实现目标的最佳方法是什么?

向Linq 2 Sql查询动态添加未确定数量的子句的正确方法是什么?

此函数用于返回用户搜索输入的联系人列表。 搜索词的数量始终至少为一,但可能很多。 public IList GetContacts(string[] searchTerms) { using (dbDataContext db = new dbDataContext()) { var contacts = from _contacts in db.Contacts orderby _contacts.LastName ascending, _contacts.FirstName ascending select _contacts; foreach (string term in searchTerms) { contacts = (IOrderedQueryable)contacts.Where(x => SqlMethods.Like(x.FirstName, “%” + term + “%”) || SqlMethods.Like(x.MiddleName, “%” + term + “%”) || SqlMethods.Like(x.LastName, “%” + […]

如何回滚与LINQ to SQL相关的事务?

问题只是回滚变化,而不是提交。 假设我获取了一些数据,我更改了它们,我提交了更改(可选步骤)并且我回滚了事务。 无论你在哪里看每个作者写,这都会取消更改。 但我发现这是半真的 – LINQ DataContext将保留更改的数据! 我使用TransactionScope和DataContext.Transaction测试了这个。 在这两种情况下,我都有相同的行为。 解决方法是在回滚后重新创建DataContext(但这会导致其他问题,如缓存数据和处理嵌套事务)或手动丢弃DataContext中的更改。 然而,这些只是解决方法。 问题 那么我错过了什么? LINQ to SQL不适合交易吗? 如何使用交易,以便他们真的回滚变化? 例 MyTable record = null; db.Connection.Open(); using (db.Transaction = db.Connection.BeginTransaction()) { record = db.MyTable.First(); record.BoolField = !record.BoolField; // changed db.SubmitChanges(); db.Transaction.Rollback(); }

LINQ To SQL动态选择

有人可以告诉我如何在LINQ To SQL语句中指示我想在运行时返回哪些列? 我允许用户在复选框列表中选择项目,这些项目表示他们希望在绑定到L2S查询结果的网格视图中显示的列。 我能够动态生成WHERE子句但无法对SELECT片段执行相同的操作。 这是一个示例: var query = from log in context.Logs select log; query = query.Where(Log => Log.Timestamp > CustomReport.ReportDateStart); query = query.Where(Log => Log.Timestamp Log.ProcessName == CustomReport.ProcessName); foreach (Pair filter in CustomReport.ExtColsToFilter) { sExtFilters = “” + filter.First + “” + filter.Second + “”; query = query.Where(Log => Log.FormattedMessage.Contains(sExtFilters)); }

父子一对一关系相同的表

我有一个关于如何在Microsoft SQL-Server 2012中实现表关系的问题。 我有一个表(MyTable),它应该包含父/子结构。 一个父母可能有一个孩子,一个孩子只有一个父母。 这是一种经典的一对一关系。 最顶层的条目显然可能没有父级。 (这是通过可空的属性建模的) 当我尝试在MS-SQL中对此进行建模时,我收到如下表。 这是我的代码: CREATE TABLE [dbo].[MyTable]( [Id] [uniqueidentifier] PRIMARY KEY NOT NULL, [Name] [nvarchar](200) NOT NULL, [ParentObjectId] [uniqueidentifier] NULL ) GO ALTER TABLE [dbo].[MyTable] WITH CHECK ADD CONSTRAINT [FK_MyTable_ParentObject] FOREIGN KEY([ParentObjectId]) REFERENCES [dbo].[MyTable] ([Id]) GO ALTER TABLE [dbo].[MyTable] WITH CHECK ADD CONSTRAINT [Unique_ParentId] UNIQUE(ParentObjectId) GO ALTER TABLE [dbo].[MyTable] […]

返回IQueryable的编译查询何时执行?

好的,我需要在这里进行健全检查…… 我编译了一个在执行时返回IQueryable的查询。 在以下示例中,查询实际应对数据库执行哪些行? 101 IQueryable results = MyCompiledQuery(MyDataContext); 102 List final = (from t in result 103 where t.ID > 5 104 select t).ToList(); 这是我如何定义编译的查询 public static Func<MyDataContext, IQueryable> MyCompiledQuery= CompiledQuery.Compile<MyDataContext, IQueryable>( (MyDataContext db) => from w in db.Widgets where ((w.Type == WidgetType.Atype || //Widget.Atype is a Linq to Sql object, that I’ve defined statically […]