有一個奇怪的問題,我無法找到一個解決方案。 我在我的客飯 一排,看起來像這樣: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