遇到一个奇怪的问题,我找不到解决方案。我的来宾表中有一行,如下所示:
[GuestOnline] [bit] NULL,
因此,当我创建一个来宾时,我使用 json 格式的 ajax 调用将值“true”从客户端传递给 WCF 应用程序,该应用程序将值发送到目前看起来像这样的属性。
[DataMember]
public Nullable<bool> GuestOnline
{
get
{
return this.GuestOnline = true;
}
set
{
this.GuestOnline = true;
}
}
将 Guest 插入 DB 的 C# 方法如下所示:
public Guest CreateGuest(Guest guest)
{
context.Guests.Add(new Guest() {
GuestName = guest.GuestName, GuestOnline = true });
context.SaveChanges();
var result = context.Guests.First<Guest>(g => g.GuestName == guest.GuestName);
return result;
}
这应该清楚地将值“true”发送到我在 SQL 中的行。并且该值应转换为位值= 1。但事实并非如此。我仍然在我的数据库中获得 NULL 的值。Ajax 调用如下所示:
function createguest() {
if (userName.value !== "") {
var guestData = '{"GuestName":"' + userName + '", "GuestOnline":"' + "true" + '"}';
$.ajax({
type: 'POST',
url: 'http://localhost:35709/ChatService.svc/guests',
contentType: 'application/json; charset=utf-8',
data: guestData,
dataType: 'json'
});
}
};
关于我做错了什么有什么建议吗?