2011-08-04 12 views
0

私はVisual Studio 2010でasp.net mvc 3とEF 4.1を使用しています。EF 4.1、MVC 3で最後に挿入されたID

最後に挿入されたIDについて問題があります。私はdb "points_Order"と "points_OrderDetails"の2つのテーブルを持っています。

      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値を挿入することはできません '受注' テーブル 'db.dbo.points_OrderDetails';列はNULLを許可しません。 INSERTが失敗します。\ r \ nこのステートメントは終了しました。 "}"

私は何ができますか?何か間違っているのですか?ご注文から関係を定義した場合

答えて

2

- >モデル内の注文の詳細は、それは次のように動作するはずです:

po.Details.Add(pod); // or pod.Order = po; 
db.Order.Add(po); 
db.SaveChanges(); 

EFは、手動でIDのを設定する必要があなたのための関係を把握するべきではありません。

更新:あなたはサポートされていないことをしようとしています。あなたには1対1のマッピングがあります。 EFはそれをあなたが意図している方法(主キー共有)には対応していません。 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を参照してください。

+0

私は関係を定義しませんでした。私は質問を更新する秒待ってください。 – Vai

+0

私は 'public virtual points_OrderDetails OrderDetail {get;}を試しました。セット; } 'Orderテーブル。エンティティはOrderテーブルの中で 'OrderDetail_OrderID'を探していました。 それから、 'public virtual points_Orders Order {get;セット; } 'OrderDetailsテーブル。もう一度何も起こらなかった... – Vai

+0

あなたのモデルは私が期待していたものではありません(私は注文 - > orderdetailsは1対多であると仮定しました)私の更新された回答を参照してください – jeroenh

関連する問題