Questions tagged «linq-to-sql»

LINQ to SQL是.NET Framework 3.5版的组件,它提供了运行时基础结构,用于将关系数据作为存储在Microsoft SQL Server中的对象进行管理。

14
错误-SqlDateTime溢出。必须介于1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间
我一直在使用我编写的这段代码,它以这种最不清楚的方式工作。我希望在数据库中插入一行,其中包括两列DateTime: myrow.ApprovalDate = DateTime.Now myrow.ProposedDate = DateTime.Now 但是,当我更新数据库时,收到此错误: SqlDateTime溢出。必须介于1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间。 我什至尝试从数据库复制插入的值并将其硬编码到要更新的对象中: // I copied this value from the DB myrow.ApprovalDate = Convert.ToDateTime("2008-12-24 00:00:00.000"); 仍然是同样的错误,奇怪的是,上述技巧适用于第一次插入数据库,但此后失败。有什么想法吗?

6
了解SELECT查询上的SQL Server LOCKS
我想知道SELECT WITH (NOLOCK)如果影响该表的其他唯一查询是SELECT查询,在表上使用的好处是什么? SQL Server如何处理?一个SELECT查询会阻止另一个SELECT查询吗? 我正在使用SQL Server 2012和Linq-to-SQL DataContext。 (编辑) 关于性能: 如果使用锁定功能,第二个SELECT必须等待第一个SELECT完成SELECT吗? 与一个SELECT WITH (NOLOCK)?


5
LINQ to SQL中的TransactionScope与事务
LINQ to SQL中的经典事务处理模式之间有什么区别: using(var context = Domain.Instance.GetContext()) { try { context.Connection.Open(); context.Transaction = context.Connection.BeginTransaction(); /*code*/ context.Transaction.Commit(); } catch { context.Transaction.Rollback(); } } 与TransactionScope对象 using (var context = Domain.Instance.GetContext()) using (var scope = new TransactionScope()) { try { /*code*/ scope.Complete(); } catch { } }


4
Linq中的多个WHERE子句
我是LINQ的新手,想知道如何执行多个where子句。这就是我要实现的:通过过滤掉某些用户名来返回记录。我尝试了下面的代码,但未按预期工作。 DataTable tempData = (DataTable)grdUsageRecords.DataSource; var query = from r in tempData.AsEnumerable() where ((r.Field<string>("UserName") != "XXXX") || (r.Field<string>("UserName") != "XXXX")) select r; DataTable newDT = query.CopyToDataTable(); 我在这里先向您的帮助表示感谢!!!
75 linq  linq-to-sql 

3
要返回IQueryable <T>还是不返回IQueryable <T>
我有一个存储库类,将我的LINQ包装到SQL数据上下文中。存储库类是业务线类,其中包含所有数据层逻辑(以及缓存等)。 这是我的repo界面的v1。 public interface ILocationRepository { IList&lt;Location&gt; FindAll(); IList&lt;Location&gt; FindForState(State state); IList&lt;Location&gt; FindForPostCode(string postCode); } 但是为了处理FindAll的分页,我正在辩论是否公开IQueryable &lt;ILocation&gt;而不是IList来简化诸如分页之类的接口。 从数据存储库中公开IQueryable的利弊是什么? 很感谢任何形式的帮助。

6
如何在LINQ中进行子查询?
这是我要转换为LINQ的查询示例: SELECT * FROM Users WHERE Users.lastname LIKE '%fra%' AND Users.Id IN ( SELECT UserId FROM CompanyRolesToUsers WHERE CompanyRoleId in (2,3,4) ) CompanyRolesToUsers和之间存在FK关系Users,但它是多对多关系,并且CompanyRolesToUsers是联结表。 我们已经构建了大部分站点,并且已经通过使用PredicateExtensions类构建Expressions来完成了大部分过滤工作。 简单过滤器的代码如下所示: if (!string.IsNullOrEmpty(TextBoxLastName.Text)) { predicateAnd = predicateAnd.And(c =&gt; c.LastName.Contains( TextBoxLastName.Text.Trim())); } e.Result = context.Users.Where(predicateAnd); 我正在尝试为另一个表中的子选择添加谓词。(CompanyRolesToUsers) 我想要添加的是执行以下操作的操作: int[] selectedRoles = GetSelectedRoles(); if( selectedRoles.Length &gt; 0 ) { …
73 c#  linq  linq-to-sql 

3
LINQ to SQL Where子句可选条件
我正在使用LINQ to SQL查询,并且遇到了一个问题,其中我有4个可选字段来过滤数据结果。可选地,我的意思是可以选择是否输入值。具体来说,一些文本框可能具有值或具有空字符串,而一些下拉列表可能具有选择值或可能没有值... 例如: using (TagsModelDataContext db = new TagsModelDataContext()) { var query = from tags in db.TagsHeaders where tags.CST.Equals(this.SelectedCust.CustCode.ToUpper()) &amp;&amp; Utility.GetDate(DateTime.Parse(this.txtOrderDateFrom.Text)) &lt;= tags.ORDDTE &amp;&amp; Utility.GetDate(DateTime.Parse(this.txtOrderDateTo.Text)) &gt;= tags.ORDDTE select tags; this.Results = query.ToADOTable(rec =&gt; new object[] { query }); } 现在,我需要添加以下字段/过滤器,但前提是它们由用户提供。 产品编号-来自另一个可以连接到TagHeader的表。 采购订单编号-TagsHeaders表中的一个字段。 订单号-与PO#类似,只是不同的列。 产品状态-如果用户是从下拉菜单中选择的,则需要在此处应用所选的值。 我已经拥有的查询效果很好,但是要完成该功能,需要能够在where子句中添加这4个其他项,只是不知道如何!
72 c#  asp.net  linq  linq-to-sql 


14
Linq查询具有可为空的总和
from i in Db.Items select new VotedItem { ItemId = i.ItemId, Points = (from v in Db.Votes where b.ItemId == v.ItemId select v.Points).Sum() } 我得到了这个查询,但是,如果没有发现异常的选票,它将失败: The null value cannot be assigned to a member with type System.Int32 which is a non-nullable value type. 我以为它是因为sum返回一个int而不是可为null的int,从而给sum一个int?由于输入仅给出相同的错误,可能导致求和仅适用于int。 有什么好的解决方法吗?
70 c#  linq  linq-to-sql  sum  nullable 

2
如何创建LINQ to SQL事务?
我有一段涉及多个插入的代码,但是需要在完成向其他表中的插入之前执行Submitchanges方法,以便我可以获取一个ID。我一直在互联网上搜索,找不到如何在linq to sql中创建事务。我已在要进行交易的代码中添加了注释。 var created = false; try { var newCharacter = new Character(); newCharacter.characterName = chracterName; newCharacter.characterLevel = 1; newCharacter.characterExperience = 0; newCharacter.userUsername = userUsername; newCharacter.characterClassID = ccslst[0].characterClassID; //Open transaction ydc.Characters.InsertOnSubmit(newCharacter); ydc.SubmitChanges(); foreach (var ccs in ccslst) { var cs = new CharacterStat(); cs.statId = ccs.statID; cs.statValue = ccs.statValue; …

24
Linq to SQL不会遗漏要点吗?ORM映射器(SubSonic等)不是最佳解决方案吗?
我希望社区对Linq to Sql和其他ORM映射器有一些想法。 我喜欢Linq和Sql,并喜欢用本机开发语言表达数据访问逻辑(或一般说来CRUD操作),而不必处理C#和SQL之间的“阻抗不匹配”。例如,要为业务层返回与ObjectDataSource兼容的Event实例列表,请使用: return db.Events.Select(c =&gt; new EventData() { EventID = c.EventID, Title = c.Title }) 如果要使用旧的SQL-to-C#构造实现此功能,则必须创建一个Command类,添加EventID参数(使用字符串描述“ @EventID”参数),然后将SQL查询字符串添加到命令类,执行命令,然后使用(cast-type)nwReader [“ FieldName”]拉出每个返回的字段值,并将其分配给我的EventData类(yuck)的新创建实例的成员。 因此,这就是为什么像Linq / SubSonic / etc这样的人。并且我同意。 但是,从更大的角度看,我发现许多错误。我的感觉是,Microsoft也看到了错误,这就是为什么他们杀死Linq to SQL并试图将人们转移到Linq to Entities。只是,我认为微软正在加倍下注。 那么,怎么了? 问题在于,有一些架构宇航员,尤其是Microsoft的宇航员,他们研究了Linq to Sql并意识到这不是一个真正的数据管理工具:在C#中,您仍然无法轻松完成许多事情,他们的目标是修复它。 您会看到这体现在Linq to Entities背后的野心,有关Linq的革命性甚至LinqPad挑战的博客文章中。 而这个问题是在于,它假定SQL的问题。也就是说,为了减轻轻微的不适(SQL和C#之间的阻抗不匹配),Microsoft建议在创可贴(Linq to SQL或类似的东西)就可以的情况下等效于太空服(完全隔离)。 据我所知,开发人员足够聪明,可以掌握关系模型,然后将其智能地应用于开发工作中。实际上,我再说一遍,Linq to SQL,SubSonic等已经太复杂了:学习曲线与掌握SQL本身并没有太大不同。由于在可预见的将来,开发人员必须掌握SQL和关系模型,因此我们现在面临学习两种查询/ CRUD语言的问题。更糟糕的是,Linq通常很难测试(您没有查询窗口),将我们从正在执行的实际工作中删除了一层(生成SQL),并且对SQL构造(例如,最多)的支持非常笨拙日期处理(例如DateDiff),“具有”甚至“分组依据”。 有什么选择?就个人而言,我不需要像Linq to Entities那样的数据访问模型。我希望仅在Visual Studio中弹出一个窗口,输入并验证我的SQL,然后按一个按钮即可生成或补充C#类以封装该调用。由于您已经知道SQL,因此您不希望仅输入以下内容: Select …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.