在创建主键字段之前获取其下一个值
Get the next value of a primary key field before it is created
我需要在实际创建之前将要创建的下一个 ID 的值分配给会话变量。
我使用了下面的代码,但 idd
总是导致 0
。
T_Order objorder = new T_Order();
int id = ((int)Session["logged_in"]);
var date = DateTime.Now;
if (Session["Order"] == null)
{
objorder.CreatedDate = DateTime.Now;
objorder.ModifiedDate = DateTime.Now;
objorder.DeliveryDate = date.AddDays(10);
objorder.User_ID = id;
objorder.OrderStatus_ID = 1;
objorder.OfferType_ID = 16;
objorder.TypeOfOrder_ID = 2;
context.T_Order.Add(objorder);
Session["Order"] = objorder.ID;
}
int idd = (int)Session["Order"];
怎样才能得到正确答案?
我假设您正在为主键使用自动递增的身份字段。在这种情况下,Entity Framework 在保存之前不会生成它的值。有道理,你怎么知道保存前的值应该是多少?
没有理由不在创建实体时保存实体,然后分配会话变量。坚持下去可能会给您带来其他问题,例如实体不再依附于上下文
我需要在实际创建之前将要创建的下一个 ID 的值分配给会话变量。
我使用了下面的代码,但 idd
总是导致 0
。
T_Order objorder = new T_Order();
int id = ((int)Session["logged_in"]);
var date = DateTime.Now;
if (Session["Order"] == null)
{
objorder.CreatedDate = DateTime.Now;
objorder.ModifiedDate = DateTime.Now;
objorder.DeliveryDate = date.AddDays(10);
objorder.User_ID = id;
objorder.OrderStatus_ID = 1;
objorder.OfferType_ID = 16;
objorder.TypeOfOrder_ID = 2;
context.T_Order.Add(objorder);
Session["Order"] = objorder.ID;
}
int idd = (int)Session["Order"];
怎样才能得到正确答案?
我假设您正在为主键使用自动递增的身份字段。在这种情况下,Entity Framework 在保存之前不会生成它的值。有道理,你怎么知道保存前的值应该是多少?
没有理由不在创建实体时保存实体,然后分配会话变量。坚持下去可能会给您带来其他问题,例如实体不再依附于上下文