当前位置:编程学习 > C#/ASP.NET >>

LINQ模糊匹配时查出了不相干的数据?

我有如下数据:

现在我根据“姓名”,作模糊匹配,如代码:

 using (var t = new Entities())
            {
                var query = from q in t.Members where q.姓名.Contains("张") select q;
                return query.ToList();
            }

结果,却得了如下结果:



数据库用的是SQLite,姓名字段的类型是nvarchar。
然后又作如下测试:

       List<Member> temp = new List<Member>();
       temp.Add(new Member() { 姓名 = "张良", QQ = "4545564645" });
       temp.Add(new Member() { 姓名 = "刘禹锡", 地址 = "珠海" });
       var query = from q in temp where q.姓名.Contains("张") select q;

结果正常,推测问题应该是出在数据库上,各位有没遇到过这样的问题?
            --------------------编程问答-------------------- 反正至少在我用sqlite的那个时候,它对中文的处理是不靠谱的。 --------------------编程问答-------------------- 是不是sqlite编码问题呢 --------------------编程问答-------------------- 将LINQ对应的SQL语句放到SQLITE里执行一下,看是什么结果 --------------------编程问答-------------------- 把Linq對應的標准sQL在sQlite中執行看是否生成相同結果 --------------------编程问答-------------------- 哇,还惊动了二位版主。
我把LIQN执行的SQL 放到数据库里查询了一下,结果也是正确的,它生成的SQL如下:

SELECT [Extent1].[消费额] AS [消费额] FROM [Member] AS [Extent1] WHERE (CHARINDEX('张', [Extent1].[姓名])) > 0

只返回了一条数据。不知为什么LINQ会返回两个实体呢?
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,