C# linq到实体包含不起作用
我不熟悉LINQtoEntities,在使用contain方法时遇到了一些问题。 这是我数据库中的示例表C# linq到实体包含不起作用,c#,linq,linq-to-sql,linq-to-entities,C#,Linq,Linq To Sql,Linq To Entities,我不熟悉LINQtoEntities,在使用contain方法时遇到了一些问题。 这是我数据库中的示例表 DataTable UserTable = new DataTable(); UserTable .Columns.Add("ID", typeof(int)); UserTable .Columns.Add("Name", typeof(string)); UserTable .Rows.Add(1,"Tom"); UserTable .Rows.Add(2,"Tom_dad"); Us
DataTable UserTable = new DataTable();
UserTable .Columns.Add("ID", typeof(int));
UserTable .Columns.Add("Name", typeof(string));
UserTable .Rows.Add(1,"Tom");
UserTable .Rows.Add(2,"Tom_dad");
UserTable .Rows.Add(3,"Tom_mom");
UserTable .Rows.Add(4,"Tom_sister");
在Linq to entities中,我写了这个声明
entities edm = new entities();
var query= from a in edm .UserTable
where a.Name.Contains("Tom")
select a;
结果是第一行的名字正好是Tom
如何获得包含4行的结果?例如类似SQL的方法%Tom%
谢谢你的帮助和好意
环境:VS2010/.Net FrameWork4
//更新//
非常感谢本·米伦。
在我将ToList()添加到语句后面后,它就会工作
var query= (from a in edm .UserTable
where a.Name.Contains("Tom")
select a).ToList();
这两种说法的区别是什么?我不明白为什么这种改进能奏效。试试看
entities edm = new entities();
var query= (from a in edm .UserTable
where a.Name.Contains("Tom")
select a).ToList();
这样做有效吗?如果UserTable有一个名为“Name”的行,其中包含4条包含Tom的记录,那么您的查询应该可以工作。这就是您的工作方式。我想你在别处遗漏了什么。你不是在你的
查询
对象的某个地方执行FirstOrDefault()
或First()
?原因:这应该是完全正确的。说明:通过将查询包装在ToList()
中,可以强制立即运行查询。如果这解决了您的问题,那是因为您正在进行查询、更改数据,然后实际运行它。