C# 如何获取<;中的id列表;列表>;在LINQ中插入后?
我有3个关系如下的表: 我正在使用LINQ插入SQL。在插入到Customer表和插入到Customer OrderTour表之后,我可以获得Customer\u Id。但是对于列表访问者表中的Id\u访问者列表,我如何获取它们并插入到客户订单旅游表中(因为客户订单旅游和列表访问者的关系是多对多的) 这是我的密码:C# 如何获取<;中的id列表;列表>;在LINQ中插入后?,c#,asp.net,linq,linq-to-sql,webforms,C#,Asp.net,Linq,Linq To Sql,Webforms,我有3个关系如下的表: 我正在使用LINQ插入SQL。在插入到Customer表和插入到Customer OrderTour表之后,我可以获得Customer\u Id。但是对于列表访问者表中的Id\u访问者列表,我如何获取它们并插入到客户订单旅游表中(因为客户订单旅游和列表访问者的关系是多对多的) 这是我的密码: int customer_id = 0; #region [Add List Visitors] private void AddListVisitors(StringColle
int customer_id = 0;
#region [Add List Visitors]
private void AddListVisitors(StringCollection sc)
{
List_Visitor add_visitors = new List_Visitor();
var listsToAdd = new List<List_Visitor>();
foreach (string item in sc)
{
if (item.Contains(","))
{
var splitItems = item.Split(",".ToCharArray());
listsToAdd.Add(new List_Visitor() {
Fullname = splitItems[0],
add = splitItems[1],
Sex = splitItems[2]
});
}
}
using (var db = new Travel_DBDataContext())
{
db.List_Visitors.InsertAllOnSubmit(listsToAdd);
db.SubmitChanges();
}
}
#endregion
#region [Get List Visitors]
private void GetListVisitors() {
int rowIndex = 0;
StringCollection sc = new StringCollection();
DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"];
if (dtCurrentTable.Rows.Count > 0)
{
for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)
{
//extract the TextBox values
TextBox visitor_txtName = (TextBox)grdListVisitors.Rows[rowIndex].Cells[1].FindControl("txtName");
TextBox visitor_txtAdd = (TextBox)grdListVisitors.Rows[rowIndex].Cells[1].FindControl("txtAdd");
DropDownList visitor_ddlSex = (DropDownList)grdListVisitors.Rows[rowIndex].Cells[1].FindControl("ddlSex");
sc.Add(visitor_txtName.Text + "," + visitor_txtAdd.Text + "," + visitor_ddlSex.SelectedItem.Text);
rowIndex++;
}
//Store the current data to StringCollection
AddListVisitors(sc);
}
#endregion
#region [Add New Customer]
private void AddNewCustomer() {
Customer add_customer = new Customer();
add_customer.Fullname = txtName.Text;
add_customer.add = txtAdd.Text;
add_customer.Phone = txtPhone.Text;
add_customer.Email = txtEmail.Text;
db.Customers.InsertOnSubmit(add_customer);
db.SubmitChanges();
customer_id = add_customer.Customer_Id;
}
#endregion
#region [Add Customer Order]
private void AddCustomerOrder (){
Customer_OrderTour cus_order = new Customer_OrderTour();
cus_order.Customer_Id = customer_id;
cus_order.Id_visitors = //What should I do here?
}
#endregion
int客户_id=0;
#地区[添加访客列表]
私人void AddListVisitors(StringCollection sc)
{
列表\访问者添加\访问者=新列表\访问者();
var listsToAdd=新列表();
foreach(sc中的字符串项)
{
如果(项包含(“,”))
{
var splitItems=item.Split(“,”.ToCharArray());
添加(新列表\访问者(){
Fullname=splitItems[0],
添加=拆分项目[1],
性别=拆分项目[2]
});
}
}
使用(var db=new Travel_DBDataContext())
{
db.List_访客。InsertAllOnSubmit(listsToAdd);
db.SubmitChanges();
}
}
#端区
#区域[获取访客列表]
私有void GetListVisitors(){
int rowIndex=0;
StringCollection sc=新的StringCollection();
DataTable dtCurrentTable=(DataTable)视图状态[“CurrentTable”];
如果(dtCurrentTable.Rows.Count>0)
{
对于(int i=1;如果链接或联接表是多对多的,我不应该为它们设置链接或联接表吗?也许我遗漏了什么,但你应该从Customer\u OrderTour获取Id,并将其插入到一个新表“Tour\u Visitors”中,该表也将所有行的Id插入到List\u Visitors中。@FullTimeSkeleton你能帮我编辑我的代码吗?你需要创建新的DB t吗能够然后重新生成您的DBML。我还建议将您的代码分成更接近n层结构的部分,因为如果扩展到更大的部分,会变得更混乱。@FullTimeSkeleton,因为我的项目很小。我不知道如何获取列表Id\u访问者。给我一些建议。谢谢:)好的,您需要做的是循环浏览访客列表,并将每个访客添加到数据库中,获取新添加行的Id,然后将该行+customer\u ordertourid插入新的联接表中。这样,您的链接表将填充相关数据。请阅读此处