如何解决无法使用Subsonic 2.2插入记录SqlServer
|| 我使用SqlServer2008。这是数据库架构:(请注意,这仅是为了测试SubSonic)Create Table Dept
(
DeptID int not null Identity(1,1) primary key,DeptName varchar(20),Location varchar(30)
)
GO
Create Table tUsers
(
UserID int not null identity(1,UserName varchar(50)
)
GO
create table Emp
(
EmpID int not null identity(1,DeptID int foreign key references dept(deptid),CreatedBy varchar(50),EmpName varchar(50)
)
这是保存员工的C#代码:
Emp em = new Emp();
em.DeptID = 3;
em.CreatedBy = \"Temp1\";
em.EmpName = \"Temp3\";
em.Save();
这是Sql事件探查器跟踪:
exec sp_executesql N\'/* GetInsertSql(Emp) */ INSERT INTO [dbo].[Emp]([DeptID],[CreatedBy],[EmpName]) VALUES(@DeptID,@CreatedBy,@EmpName);SELECT SCOPE_IDENTITY() AS newID;\',N\'@DeptID int,@CreatedBy varchar(8000),@EmpName varchar(5)\',@DeptID=3,@CreatedBy=\'\',@EmpName=\'Temp3\'
可以看出,即使从应用程序传递了值,CreatedBy始终为空。 (以前,该列是外键,但是SubSonic总是抛出(格式)错误,因此,根据SubSonic论坛的建议,我将其更改为varchar)。
知道出了什么问题吗?
提前致谢。
Sathya Narayanan
解决方法
“ 3”是SubSonic的自动审核字段的一部分。列名为
由...制作
创建于
通过修改
修改时间
用
HttpContext.Current.User.Identity.Name
和DateTime.Now
的值自动填充。
这就是为什么您不断收到格式错误的原因。
我建议只重命名此列,以免影响审核机制。
另请参见http://jamesewelch.wordpress.com/2008/09/24/how-to-use-custom-audit-fields-with-subsonic/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。