Tag: linq

人们如何testing使用Linq to SQL的代码

人们如何testing使用Linq to SQL的代码?

Python中的LINQ

是否有任何可以自动查询XML文件和/或RDBMS表的类似LINQ的Python项目? 在C#中,语法不一定非常像LINQ,但希望以pythonic的方式closures。

LINQ to SQL是否被弃用?

早在2008年底,关于LINQ to SQL的未来就有很多争论。 许多人认为,微软在.NET 4.0entity framework中的投资是LINQ to SQL没有前途的标志。 我想我会在做出自己的决定之前等待,因为人们不同意。 快18个月,我有供应商提供依赖于LINQ to SQL的解决scheme,我亲自试用过,并且非常喜欢使用它。 我觉得这是留在这里。 但是我正在阅读一本新书(Ben Watson的C#4.0 How-To)和第二十一章(LINQ),他build议说它“已经或多或less被微软弃用”,并build议使用LINQ to Entity Framework。 我的问题是,是否正式弃用LINQ to SQL,或者权威实体(Microsoft,Scott Gu等)是否正式build议使用LINQ to Entities而不是LINQ to SQL。

使用LINQ扩展方法的多个WHERE子句

我有一个LINQ查询,如下所示: DateTime today = DateTime.UtcNow; var results = from order in context.Orders where ((order.OrderDate <= today) && (today <= order.OrderDate)) select order; 我正在学习/理解LINQ。 在某些情况下,我需要添加两个额外的WHERE子句。 为了做到这一点,我正在使用: if (useAdditionalClauses) { results = results.Where(o => o.OrderStatus == OrderStatus.Open) // Now I'm stuck. } 正如你所看到的,我知道如何添加一个额外的WHERE子句。 但是,我如何添加多个? 例如,我想补充一点 WHERE o.OrderStatus == OrderStatus.Open AND o.CustomerID == customerID 到我以前的查询。 我如何使用扩展方法做到这一点? 谢谢!

数据源不支持服务器端数据分页

我的屏幕上有一个GridView,需要它来允许分页。 标记: <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1"> <Columns> <asp:BoundField DataField="appID" HeaderText="appID" SortExpression="appID" /> </Columns> </asp:GridView> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetBookingId" TypeName="AppointmentRepository"> <SelectParameters> <asp:Parameter Name="maximumRows" Type="Int32" /> <asp:Parameter Name="startRowIndex" Type="Int32" /> </SelectParameters> </asp:ObjectDataSource> 代码隐藏: ObjectDataSource1.SelectParameters["maximumRows"].DefaultValue = "10"; ObjectDataSource1.SelectParameters["startRowIndex"].DefaultValue = "0"; LINQ查询: public IQueryable<tblAppointment> GetBookingId(int maximumRows, int startRowIndex) { var result = (FROM a IN dc.tblAppointments SELECT […]

System.Data.Linq.ChangeConflictException:行未find或更改

我想使用LINQ(无LINQDataSource)删除选定的gridview行。 当select被改变时,detailview绑定也被改变。 我可以添加一个新的条目到数据库中,但是当我将这个代码添加到updatePanel中的一个删除button时,我得到一个exception: try { var query = from i in db.QuestionModules where i.QuestionModuleID == QuestionModuleID select i; QuestionModule o = query.First(); db.QuestionModules.DeleteOnSubmit(o); db.SubmitChanges(); } 这是我得到的例外: System.Data.Linq.ChangeConflictException: Row not found or changed. at System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode) at System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode) at System.Data.Linq.DataContext.SubmitChanges() 我有这个问题已经有一个星期了,不pipe我做了什么,它仍然存在,logging也不会被删除。 有什么想法做什么?

使用Contains()时遇到2100参数限制(SQL Server)

from f in CUSTOMERS where depts.Contains(f.DEPT_ID) select f.NAME depts是部门ID的列表( IEnumerable<int> ) 这个查询工作正常,直到你通过一个大的列表(说3000个左右的ID),然后我得到这个错误: 传入的表格数据stream(TDS)远程过程调用(RPC)协议stream不正确。 在这个RPC请求中提供了太多的参数。 最高是2100。 我改变了我的查询: var dept_ids = string.Join(" ", depts.ToStringArray()); from f in CUSTOMERS where dept_ids.IndexOf(Convert.ToString(f.DEPT_id)) != -1 select f.NAME 使用IndexOf()修复了错误,但使查询变慢。 有没有其他方法可以解决这个问题? 非常感谢。

IQueryable,List,IEnumerator之间的区别?

我想知道什么是IQueryable,列表,IEnumerator和什么时候我应该使用每一个不同? 例如,当使用LINQ到SQL我会做这样的事情 public List<User> GetUsers() { return db.User.where(/* some query here */).ToList(); } 现在我想知道是否应该使用IQueryable,但我不确定在列表中使用它的优点。

C#:如何将对象的列表转换为该对象的单个属性的列表?

说我有: IList<Person> people = new List<Person>(); 而person对象具有诸如FirstName,LastName和Gender之类的属性。 如何将其转换为Person对象的属性列表。 例如,到一个名字列表。 IList<string> firstNames = ???

使NameValueCollection可被LINQ Query访问

如何使NameValueCollection访问LINQ查询运算符,如where,join,groupby? 我试了下面: private NameValueCollection RequestFields() { NameValueCollection nvc = new NameValueCollection() { {"emailOption: blah Blah", "true"}, {"emailOption: blah Blah2", "false"}, {"nothing", "false"}, {"nothinger", "true"} }; return nvc; } public void GetSelectedEmail() { NameValueCollection nvc = RequestFields(); IQueryable queryable = nvc.AsQueryable(); } 但是我得到一个ArgumentException告诉我, 源不是IEnumerable <> 。