Tag: linq to sql

在datagridview中搜索数据

我有一个datagridview,显示数据库表中的数据。 ID和NAME有两列。 我有一个文本框,我在其中输入名称,这些名称的数据出现在datagridview中。 我已经实现了数据搜索,但我想在comboBox中搜索完成。 当我输入“a”时,所有以“a”开头的名称都应出现在datagridview中。 然后,如果我键入“arn”,则所有以“arn”开头的名称都应出现在datagridview中。 我需要知道是否有内置方法或一些我应该考虑的LOGIC。 我正在使用Linq to Sql。 编辑-1 我在表单类中创建了一个子类 public class Table1 { public int ID; public string Name; public MyList(string _newID, string _newName) { _id = _newID; _name = _newName; } public int _id { get { return ID; } set { ID = value; } } public string _name { […]

如果没有数据上下文,如何保存Linq对象?

我有一个Linq对象,我想对它进行更改并保存它,如下所示: public void DoSomething(MyClass obj) { obj.MyProperty = “Changed!”; MyDataContext dc = new MyDataContext(); dc.GetTable().Attach(dc, true); // throws exception dc.SubmitChanges(); } 例外是: System.InvalidOperationException: An entity can only be attached as modified without original state if it declares a version member or does not have an update check policy. 看起来我有几个选择: 在我需要以这种方式使用的每个Linq类和表(100+)上放置一个版本成员。 找到最初创建对象的数据上下文,并使用它来提交更改。 在每个类中实现OnLoaded并保存此对象的副本,我可以将其传递给Attach()作为基线对象。 要进行并发检查; 在附加之前加载DB版本并将其用作基线对象(不是!!!) 选项(2)似乎是最优雅的方法,特别是如果我能找到一种在创建对象时存储对数据上下文的引用的方法。 […]

比较IPAddress(存储为varbinary)

我的Activity表上有一个IPAddress列。 它存储为varbinary(16),因此它可以高效(比存储为字符串更多)并且还支持IPv6。 当我存储时,我基本上得到(new System.Net.IPAddress(“127.0.0.1”))。GetAddressBytes()的值。 我希望能够做的是搜索以某些字节开头的所有IP地址,例如“127. *”。 我可以很容易地得到那个字节,所以假设我能够获得新的byte [] {127}。 鉴于此,我如何实际编写LINQ to SQL查询以获取我想要的数据? 可悲的是,我没有StartsWith,虽然我基本上想要相当于Activity.Where(a => a.IPAddress.StartsWith(new byte [] {127}))。

EntitySet 的“结果视图”在哪里?

查看LINQ to SQL映射实体的链接EntitySet时,我看到以下内容: 我想看到以下内容(通过使用.AsQueryable()扩展方法实现),以便我可以单击小刷新图标并查看内容: 为什么我不能在常规的纯EntitySet上看到结果视图? 另外,我注意到在这个MSDN页面上它说: 在LINQ to SQL中, EntitySet类实现IQueryable接口。 从我所看到的, EntitySet不inheritanceIQueryable和IQueryable 。 那么这个主张怎么了?

可以意外地评估LINQ to SQL IQueryable吗?

我正在编写一些代码,它采用LINQ to SQL IQueryable并进一步添加动态生成的Where子句。 例如,这里是其中一个方法的骨架: IQueryable ApplyContains(IQueryable source, string field, string value) { Expression<Func> lambda; … dynamically generate lambda for p => p..Contains(value) … return source.Where(lambda); } 我可以将这些方法中的几个链接在一起,并使用Skip / Take页面完成。 我是否正确地认为,当最终评估IQueryable时,如果lambda表达式中有任何内容无法转换为SQL,则会抛出exception? 特别是我担心我可能会意外地做一些会导致IQueryable提前评估然后继续在内存中进行评估的事情(从而吸引成千上万的记录)。 从我读过的一些事情我怀疑IQueryable不会像这样早期评估。 有谁能确认一下吗?

比较LINQ to SQL中的两个日期

我有一个名为meeting的数据库。 会议日期使用以下格式存储在此表中: May 2nd 2011 (例如)格式化为5/2/2011 。 我的要求是在两个日期(例如,2011年4月25日和2011年5月2日)之间召开会议,并编写一个查询,将日期与这两个日期进行比较。 是否比较4/25/2011 <4/26/2011? 比较是如何进行的? 我正在使用SQL Server 2008和LINQ to SQL查询。

有没有办法在linq查询中参数化方法?

在我使用Linq to SQL的应用程序中,用户可以搜索文本。 可以在搜索表达式的开头和/或结尾使用星号(*)。 代码现在是这样的: var search = SearchTextBox.Text.Trim(); bool filterStartsWith = false, filterEndsWith = false; if (!string.IsNullOrEmpty(search)) { filterStartsWith = search.EndsWith(“*”); filterEndsWith = search.StartsWith(“*”); if (filterStartsWith) search = search.Substring(0, search.Length – 1); if (filterEndsWith) search = search.Substring(1); if (filterStartsWith) { if (filterEndsWith) { query = query.Where(item => item.Omschrijving.Contains(search)); } else { query = query.Where(item […]

LINQ to SQL Join和Sum

任何人LINQ可以使用以下SQL吗? 我现在已经在这两个小时了,而且比我开始的时候更接近这个。 SELECT ArticleId, sum(Amount) AS VoteCount FROM ArticleVotes INNER JOIN Votes ON ArticleVotes.voteId = Votes.id GROUP BY ArticleVotes.articleId ORDER BY VoteCount DESC 表格如下; 文章投票:ArticleId,VoteId 投票:id,金额

是否可以使用LINQ从存储过程返回返回值和结果集

寻找关于获取返回值和结果集的最干净方法的建议(不将引用的参数传递给存储的proc)。 我的存储过程具有返回值以显示错误等,它们以select语句结束以获取信息。 使用常规命令,我将创建一个输出参数,该参数将保存返回值。 我无法更改db中的存储过程,因此除了返回值之外,我无法传递不同的输出参数。 想法?

烦人的SQLexception,可能是由于某些代码做错了

我开始研究这个“已经开始”的项目,在尝试执行与SQL Server 2008的一些交互时,我遇到了一个非常烦人的错误: 服务器无法恢复事务。 说明: 我在这个特定方法调用中遇到的其中一个错误: aspx.cs调用: busProcesso openProcess = new busProcesso(pProcessoId); try { if (openProcess.GetDocument() == null) { //Irrelevant code. } } catch{ //… } 商务舱(相关部分): public class busProcesso : IbusProcesso { public Processo vProcesso { get; set; } RENDBDataContext db; public busProcesso() { vProcesso = new Processo(); } public busProcesso(decimal pProcessoId) { db […]