我使用 SqlServer 2008。这是数据库架构:(请注意,这仅用于测试 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,1) primary key,
UserName varchar(50)
)
GO
create table Emp
(
EmpID int not null identity(1,1) primary key,
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 总是抛出 (Format) 错误,因此我根据 SubSonic 论坛的建议将其更改为 varchar)。
知道出了什么问题吗?
提前致谢。
沙迪亚纳拉亚南