2017-01-26 7 views
0

Entity Frameworkに関するヘルプが必要です。供給者が中に存在する追加することなく、私は私のコンテキストに請求書を追加する方法:私はここでは仮想supplierプロパティEntity Frameworkのコンテキストへの追加

public class Invoices 
{ 
    public string InvoiceNumber { get; set; } 
    public string Department { get; set; } 
    public int SupplierId{ get; set; } 

    [ForeignKey("SupplierId")] 
    public virtual Supplier SupplierDetails { get; set; } 
} 

を持って

public class Supplier 
{ 
    [Key, Column("SupplierId")] 
    public int Id { get; set; } 
    public bool IsDeleted { get; set; } 
    public string Name { get; set; } 
    [Required] 
    public string Address { get; set; } 
    public string ContactNumber { get; set; } 

    [Required] 
    [EmailAddress] 
    public string EmailAdd { get; set; } 
} 

私の質問があるsupplierクラスの構造のクラスを持っています私のデータベース?誰かが私を助けることができることを望ん - ここ

は、任意の助けが理解されるであろう

public ActionResult AddInvoice(Invoices inv) 
{ 
    context.invoices.add(inv); 
    return View(); 
} 

を追加するための私のコードです。ありがとう

+1

あなたは何を得ていますか?私が見る唯一の問題は、 'context.SaveChanges()'が見つからないということです。 – Mats391

+2

'SupplierId'はnullではありません。だからあなたは 'サプライヤー 'を設定する必要があります。参照してください[このような質問](http://stackoverflow.com/questions/41826138/insert-first-set-of-data-to-ef-code-first-using-repository-pattern/41826550#41826550) – smoksnes

+0

私は私のサプライヤディレクトリに存在しない場合は、詳細を追加する必要があります – Neil

答えて

1

SupplierIdプロパティをnull可能なint型(int?)に設定します。これにより、リンク先のサプライヤのない請求書を挿入することができます。

+0

しかし、サプライヤディレクトリに存在しない場合は、詳細を追加する必要もあります – Neil

0

今回は、特定の偉業に到達するための小さなコードを追加することができます。

コードの下に魚のような

public ActionResult AddNewAsset(AssetHeaderDetails entity) 
    { 
     if (IsExist<Supplier>(entity.SupplierDetails)) 
     { 
      entity.SupplierId = entity.SupplierDetails.Id; 
      entity.SupplierDetails = null; 
     } 
     AddDataToContext(entity); 
     AddToLookUp("AssetItemDesc", entity.Description,  entity.Description); 
     if(entity.AssetItemDetails != null) 
     { 
      foreach (var item in entity.AssetItemDetails) 
      { 
       AddToLookUp("AssetItemDetail", item.ItemDescription, item.ItemType); 
      } 
     } 
     return RedirectToAction("AddNewAsset"); 
    } 

そのルックスを参照してくださいが、それは

任意のより良いコードにコメントをすべての人にbit..thanksを管理することができますしてください?ここでコメントしてください。私はコードを変更しようとします..大きな感謝.. D

関連する問題