对于那些体面的亚音阶人来说!
TblNewsCollection col =
new Select().From(Tables.TblNews)
.InnerJoin(Tables.TblContent)
.Paged(currentPage, pageSize)
.OrderDesc(TblContent.Columns.PubDate)
.ExecuteAsCollection<TblNewsCollection>();
上面的工作,没问题,但是当我尝试添加一个where子句
时 TblNewsCollection col =
new Select().From(Tables.TblNews)
.InnerJoin(Tables.TblContent)
.Where(TblContent.Columns.UserFK)
.IsEqualTo(guidUserFK)
.Paged(currentPage, pageSize)
.OrderDesc(TblContent.Columns.PubDate)
.ExecuteAsCollection<TblNewsCollection>();
我收到此消息
System.InvalidCastException: Object must implement IConvertible.
at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
at System.Data.SqlClient.SqlParameter.CoerceValue(Object value, MetaType destinationType)
System.InvalidCastException: Failed to convert parameter value from a Guid to a String.
我从其他领域尝试过,例如数据库中的一个字段,它说它无法从bool转换为bit!
似乎只是加入后where语句的问题
答案 0 :(得分:1)
我发现连接使用TableColumnSchema可以更好地工作,如上面的Northwind示例而不是列名。
答案 1 :(得分:0)
Northwind.CustomerCollection customersByCategory = new Select()
.From(Northwind.Customer.Schema)
.InnerJoin(Northwind.Order.Schema)
.InnerJoin(Northwind.OrderDetail.OrderIDColumn, Northwind.Order.OrderIDColumn)
.InnerJoin(Northwind.Product.ProductIDColumn, Northwind.OrderDetail.ProductIDColumn)
.Where("CategoryID").IsEqualTo(5)
.ExecuteAsCollection<Northwind.CustomerCollection>();
有一个例子可以说是有效的。如果这有助于任何人帮助我!