我有两个实体ProductModel和OrderItem . ProductModel具有关系集prodToOrder,inverse orderToProd和one to Many . OrderItem与orderToProd的关系设置为逆prodToOrder和多对一 .
我添加了ProductModel数据没有问题,但我的问题是在我向OrderItem插入新记录然后返回并获取OrderItem,产品名称为null . 如果我同时将两个记录插入到ProductModel和OrderItem它将工作,但我没有添加两个实体,因为我需要选择已有的产品名称并将详细信息添加到OrderItem .
我认为问题在于,除非我同时向两个实体插入记录,否则不会创建关系 .
我在下面的函数中执行新的OrderItem:
- (IBAction)cmdSave:(id)sender {
//Get max productid
NSNumber *orderitemid =[self getMaxOrderItemID];
NSNumber *addValue= [NSNumber numberWithInteger:([orderitemid integerValue] + 1) ];
NSManagedObjectContext *context = [self managedObjectContext];
// Create a new managed object
OrderItem *orderDetails = [NSEntityDescription insertNewObjectForEntityForName:@"OrderItem" inManagedObjectContext:context];
ProductModel *prod =[NSEntityDescription insertNewObjectForEntityForName:@"ProductModel" inManagedObjectContext:context];
orderDetails.order-id=[NSNumber numberWithInteger:[addValue integerValue]];
orderDetails.product-id =[NSNumber numberWithInteger:[product-id integerValue] ];
orderDetails.qty = [NSNumber numberWithInteger:[self.txtQty.text integerValue]];
orderDetails.price =[NSDecimalNumber numberWithDouble:[self.txtPrice.text doubleValue]];
orderDetails.total = [NSDecimalNumber numberWithDouble:[self.txtTotal.text
doubleValue]];
//if i do the following statement it will insert product id to ProductModel entity but i do not want to do that and how do i maintain relationships without inserting in to ProductModel.
*** prod.product-id=[NSNumber numberWithInteger:[product-id integerValue] ];
orderDetails.orderToProd=prod;
***
NSError *error = nil;
// Save the object to persistent store
if (![context save:&error]) {
NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
}
我很感谢您的帮助或建议 .