簡體   English   中英

如何使用來自不同表的多個外鍵為表提供數據

[英]How feed a table with multiple foreign keys from different tables

所以我有3個模型:

 public class Contact
 {
    public int ContactID { get; set; }
    public string name { get; set; }
    public int SegmentID { get; set; }
    public Segment Segment { get; set; }
 }

 public class MedicalPlan
 { 
    public int MedicalPlanID { get; set; }
    public string name { get; set; }
    public int SegmentID { get; set; }
    public Segment Segment { get; set; }
 }

 public class Target 
 {
    public int TargetID { get; set; }
    public int MedicalPlanID { get; set; }
    public int ContactID { get; set; }
    public MedicalPlan MedicalPlan { get; set; }
    public Contact Contact { get; set; }
 }

一個 MedicalPlan 有很多聯系人,Target 有很多 MedicalPlan 和聯系人,

現在每個 MedicalPlan 都有一個名為 generate 的按鈕:示例

我想要的是當您按下該按鈕時,它會創建一個目標並生成通過 SegmentID 與該 MedicalPlan 關聯的每個聯系人,並將它們插入表目標中,如下所示

我試過這樣的事情:

                    IEnumurable<int> cons =
                        from contact in contacts
                        where contact.SegmentID == planMedical.SegmentID
                        select contact.ContactID;

                        int[] res = cons.ToArray();
                       


                        for ( int j = 0; j < res.Length ; j++)
                        {
                            targets.PlanMedicalID = id; //id MedicalPlans current row's key
                            targets.ContactID = res[j];
                            _context.Add(targets);
                            await _context.SaveChangesAsync();
                        }

但它什么也沒做..

您正在創建ViewModel ,即PlanTargets ,但您必須創建Database Model 實體,您必須將 object 創建為:

for ( int j = 0; j < res.Length ; j++)
{
    var target = new Target //ADD THIS LINE
    {
        MedicalPlanID = id,
        ContactID = res[j] ​
   ​ };
    _context.Target.Add(target);
    _context.SaveChangesAsync();
}

您不是在創建Target object,而是在創建PlanTargets object 並嘗試將其添加到 DbContext。

注意:在您的場景中,您想為每個ContactID創建一個Target object ,因此在您的for loop中,您必須使用new關鍵字創建 object 並設置相關屬性,之后您必須將其添加到您的 DbContext 中,當您SaveChanges時,它會將結果保存到您的數據庫中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM