我正在尝试使用NPoco的Delete()方法从数据库中删除一行数据。然而,它却抛出了一个NullReferenceException异常。
我已经找到了一个解决方法,但我想知道为什么内置的按ID删除函数对我似乎无法起作用。这在多个表格上发生。我的所有表格都有一个名为ID的标准整数主键,并已使用
对象引用未设置为对象的实例。
我已经找到了一个解决方法,但我想知道为什么内置的按ID删除函数对我似乎无法起作用。这在多个表格上发生。我的所有表格都有一个名为ID的标准整数主键,并已使用
[PrimaryKey("ID")]
修饰符在模型中标记。对象引用未设置为对象的实例。
Delete<PurchaseItem>(id); // throws null reference exception.
Delete<PurchaseItem>("where id = @0", id); // works.
传递的ID是有效的,该项在数据库中存在。代码没有执行任何SQL。
堆栈跟踪:
[NullReferenceException: Object reference not set to an instance of an object.]
NPoco.PocoDataFactory.ForObject(Object o, String primaryKeyName) in d:\Adam\projects\NPoco\src\NPoco\PocoDataFactory.cs:41
NPoco.Database.Delete(String tableName, String primaryKeyName, Object poco, Object primaryKeyValue) in d:\Adam\projects\NPoco\src\NPoco\Database.cs:1587
NPoco.Database.Delete(Object pocoOrPrimaryKey) in d:\Adam\projects\NPoco\src\NPoco\Database.cs:1598
Harmsworth.DAL.HarmsworthDB.DeletePurchaseItemFromBasketByID(Int32 id) in c:\inetpub\wwwroot\harmsworth\Website\classes\HarmsworthDAL.cs:224
Harmsworth.ViewBasketPage.RemoveItem(Int32 id) in c:\inetpub\wwwroot\harmsworth\Website\view-basket.aspx.cs:187
Harmsworth.ViewBasketPage.PurchaseItemsRepeater_ItemCommand(Object sender, RepeaterCommandEventArgs e) in c:\inetpub\wwwroot\harmsworth\Website\view-basket.aspx.cs:75
System.Web.UI.WebControls.Repeater.OnItemCommand(RepeaterCommandEventArgs e) +111
[more redundant trace info]
PurchaseItem
类声明可能会有所帮助。 - chue xid
是什么,是一个int
,还是Guid
? - Trevor Pilley