[英]Last inserted id with EF 4.1 , MVC 3
我正在使用asp.net mvc 3和EF 4.1与visual studio 2010并且我是新手。
我有一个关于最后插入的ID的问题。 我的数据库中有两个表“points_Order”和“points_OrderDetails”。
db.Order.Add(po);
db.SaveChanges();
//second thing i have tried
var orderID = (from oi in db.Order
select oi.ID)
.Max(i => i);
// and this first thing
pod.OrderID = po.ID;
pod.OrderID = orderID;
db.OrderDetails.Add(pod);
db.SaveChanges();
上下文类:
public class points_Order {
[Key]
public int ID { get; set; }
public string Owner { get; set; }
public DateTime Date { get; set; }
public byte Status { get; set; }
public int Total { get; set; }
//public virtual points_OrderDetails OrderDetail { get; set; }
}
public class points_OrderDetails {
[Key]
public int OrderID { get; set; }
public string OrderType { get; set; }
public int Amount { get; set; }
public int ItemID { get; set; }
public int ItemRecord { get; set; }
public string ItemCode { get; set; }
public byte Plus { get; set; }
public byte Degree { get; set; }
public string Kind { get; set; }
public string Sex { get; set; }
public string Race { get; set; }
public string Tier { get; set; }
public string SetItem { get; set; }
public string SOX { get; set; }
//public Blues Blue { get; set; }
}
public DbSet<points_Order> Order { get; set; }
public DbSet<points_OrderDetails> OrderDetails { get; set; }
我得到错误“{”无法将值NULL插入列'OrderID',表'db.dbo.points_OrderDetails'; 列不允许空值。 INSERT失败。\\ r \\ n语句已终止。“}”
我能做什么? 难道我做错了什么?
如果您从模型中的订单 - >订单详细信息定义关系,它应该像这样工作:
po.Details.Add(pod); // or pod.Order = po;
db.Order.Add(po);
db.SaveChanges();
EF应该为你找出关系,不需要手动设置ID。
更新:你正在尝试做一些不受支持的事情。 你有一对一的映射; EF不支持您想要的方式(共享主键)。 见http://weblogs.asp.net/manavi/archive/2011/05/01/associations-in-ef-4-1-code-first-part-5-one-to-one-foreign-key-associations .aspx有关如何在EF中进行一对一模型的说明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.