昨天使Linq To SQLite 支持VB,今天在VB中写了几条Linq语句,发现了几个问题:
1、在Linq To SQLite中的Linq语句查询后并不是得到的匿名数据类,而是将Linq转换为SQL语言?例如:
Dim tempProvince = From cust In db.AddressProvinces
Select cust
执行后得到的tempProvince并不是一个匿名数据类,而是:
所以,Linq To SQlite查询执行后的结果不能直接绑定控件,而是要.ToList后才能绑定。
cmbProvince.DisplayMember = "ProvinceName"
cmbProvince.ValueMember = "ProvinceID"
cmbProvince.DataSource = tempProvince.ToList
2、在Linq To SQLite中使用“Where”语句查询特定的字符串值,不能使用“=”,而是要使用“IS”。例如:
Dim tempCity = From cust In db.AddressCities
Where cust.ProvinceID = cmbProvince.SelectedValue
Select cust
是会执行错误的,而是要修改为:
Dim tempCity = From cust In db.AddressCities
Where cust.ProvinceID Is cmbProvince.SelectedValue
Select cust
3、Like语句好像是不能使用的,只有转换为“.ToString.Contains()”。例如:
Dim temp = From cust In db.AddressDistricts
Where cust.DistrictName.ToString.Contains("区")
Select cust
4、其他问题待发掘。