【发布时间】:2013-08-28 00:04:00
【问题描述】:
我是 linq to entity 的新手,在使用 contains 方法时遇到问题。 这是我的数据库中的示例表。
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 entity 我写了语句
entities edm = new entities();
var query= from a in edm .UserTable
where a.Name.Contains("Tom")
select a;
结果只有第一行的名字正好是 Tom。
如何获得包含 4 行的结果?比如SQL LIKE方法%Tom%。
感谢您的帮助和善意。
环境:VS2010 / .Net FrameWork4
//更新//
非常感谢 Ben Millane。 在我在语句后面添加 ToList() 后它就可以工作了。
var query= (from a in edm .UserTable
where a.Name.Contains("Tom")
select a).ToList();
这两种说法有什么区别?我想知道为什么这种改进会奏效。
【问题讨论】:
-
如果 UserTable 有一个名为“Name”的行并包含 4 条记录,其中包含 Tom——您的查询应该可以工作。
-
你就是这样做的。我认为您在其他地方遗漏了一些东西。
-
你不在你的
query对象上做一个FirstOrDefault()或First()吗?因为这应该是完全正确的。
标签: c# linq linq-to-sql linq-to-entities