有一个奇怪的问题,我无法找到一个解决方案。 我在我的客饭 一排,看起来像这样:bool真实值从实体到Sql通过公共空值<bool>
[GuestOnline] [bit] NULL,
所以,当我创建一个客户,我传递值“真”,从客户端与Ajax调用JSON格式的WCF应用程序将值发送给目前看起来像这样的属性。
[DataMember]
public Nullable<bool> GuestOnline
{
get
{
return this.GuestOnline = true;
}
set
{
this.GuestOnline = true;
}
}
是插入从客人到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;
}
这应明确在SQL值 “true” 发送到我行。值应该转换为位值= 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'
});
}
};
什么,我做错了什么建议?
不是说这会解决你的问题,但我建议使用FirstOrDefault而不是First,因为它也可以返回null,而First没有结果会抛出异常。 – JNYRanger
你有权利,它并没有解决我的问题。但我必须感谢您优化我的代码。 –
我假设你使用Linq to Entities/Linq to SQL?因为如果Guest已经是一个映射对象,您不需要创建一个新对象,而只是将传入的对象提交到数据库中。 – JNYRanger