因为我一直使用db表作为codesmith源代码,但目前我没有表定义,只有类定义,例如:
public class RespObj
{
public string Status { get; set; }
public string Msg { get; set; }
public object Resp { get; set; }
public string ErrCode { get; set; }
}
上面的代码用的是c#,不是db表,怎么用codesmith来做这个事情呢?
如您所知,我们使用LinQ技术对SQL类进行发送,并将结果发送到SQL。如果我在SQL中有一个名为User的表,我将在C#中编写类似的查询
List<User> allUsers = (from s in dataContext.Users select s).ToList();
或
// Update Query
User u = (from s in dataContext.Users where s.Id.Equals(1) select s).First();
u.Name = "serkan";
dataContext.SubmitChanges()
我已经得到了这个脚本,它工作正常,并且在我执行存储过程时输出是正确的。但是当我通过codesmith使用它时,它不工作,当我执行generate output时,存储过程将返回一个整数而不是结果。
以下是导致问题的部分:
SELECT *
INTO #UsersConversations
FROM Conversations c
WHERE c.pid IN
(SELECT DISTINCT ConvID FROM ConversationUsers WHERE UserID = @UserId)
我使用的是SQL Server2008、CodeSmith v4
我通过以下包装器代码使用CodeSmith Plinqo的批量更新功能:
public int Update<TEntity>(Expression<Func<TEntity, bool>> filter,
Expression<Func<TEntity, TEntity>> evaluator) where TEntity : class
{
var tbl = _dataContext.GetTable<TEntity>();
return tbl.Update(filter, evaluat