LightSpeed 相关问题处理

1. 关于KeyTable

配置文件中有一个节点 lightSpeedContexts 

该节点下存放的是一些使用LightSpeed的配置,如

<add name="myDB" connectionStringName="myDBCon" dataProvider="SqlServer2008" pluralizeTableNames="False" identityMethod="Guid" />

identityMethod 属性默认值是 KeyTable,如果使用这个属性值且表的Id都使用的Guid,则运行时会使用表KeyTable,将属性设为Guid即可解决这一问题。

 

2. 错误 【将 expression 转换为数据类型 nvarchar 时出现算术溢出错误。

实例代码:

var list = DBHelper.CreateUnitOfWork().Query<User>()
    .Select(t => new UserInfo
    {
        DeptId = t.Id.ToString(),
        IsAdmin = true
    }).ToList();

其中User表的DeptId是Guid类型。

原因是该段代码转换成语句的时候DeptId转换方式出错,通过分析器获取的代码是这样的

CAST(User.DeptId AS NVARCHAR) AS [User.Id_CAST]

很显然,Guid转字符串的时候没有指定长度。

解决方案之一就是先使用ToList,再进行Select。

 

posted @ 2015-05-16 16:52  TiestoRay  阅读(268)  评论(0编辑  收藏  举报