[英]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.