如何复制一行并将其数据链接到其他表(相关)中,并将其作为新记录插入-Linq C#
如何复制数据链接到其他表(相关)中的行,并将其作为新记录插入所有表中,包括: ASP.NET MVC/C#/Linq(方法语法)/实体框架代码优先 例如: 我有这些桌子=> 我想复制“Customer”表的最后一行,并使用新ID将其添加到数据库的新行中,同时复制表“Order”中相关的所有订单,并使用新ID的新“Customer”的“CustomerId”复制它们,同时复制表“OrderLine”中的所有订单行并用新的“OrderID”复制它们 怎么做 是否有一个简短的代码来执行此操作 蓝色是数据库中的最后一行,绿色是 我正在寻找的代码的结果,是 客户及其相关数据 主键:CustomerID&OrderID&OrderLineID=自动递增字段查看这是否有助于您:如何复制一行并将其数据链接到其他表(相关)中,并将其作为新记录插入-Linq C#,c#,asp.net-mvc,entity-framework,linq,ef-code-first,C#,Asp.net Mvc,Entity Framework,Linq,Ef Code First,如何复制数据链接到其他表(相关)中的行,并将其作为新记录插入所有表中,包括: ASP.NET MVC/C#/Linq(方法语法)/实体框架代码优先 例如: 我有这些桌子=> 我想复制“Customer”表的最后一行,并使用新ID将其添加到数据库的新行中,同时复制表“Order”中相关的所有订单,并使用新ID的新“Customer”的“CustomerId”复制它们,同时复制表“OrderLine”中的所有订单行并用新的“OrderID”复制它们 怎么做 是否有一个简短的代码来执行此操作 蓝色
INSERT INTO customer (ID, Name, Address1, Address2, Address3)
SELECT
3, Name, Address1, Address2, Address3
FROM
customer
WHERE
ID = 2;
INSERT INTO Order (CustomerId, TotalAmount)
SELECT CustomerId, TotalAmount
FROM Order
WHERE CustomerID = 3;
INSERT INTO OrderLine (OrderId, ProductId, Quantity)
SELECT ol.OrderId, ol.ProductId, ol.Quantity
FROM OrderLine ol
WHERE ol.OrderId IN (SELECT o2.OrderId
FROM Order o2
WHERE o2.CustomerID = 3);
public class Customer
{
public int CustomerId { get; set; }
public string Name { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string Address3 { get; set; }
public Customer Clone()
{
// where the reference is not detached
var employee1 = new Customer
{
Name = Name,
Address1 = Address1,
Address2 = Address2,
Address3 = Address3
};
// with reference detached
var serialisedData = JsonConvert.SerializeObject(this);
var employee2 = JsonConvert.DeserializeObject<Employee>(serialisedData);
// return employee1 or employee2;
return employee1;
}
}
我可以想出两个解决这个问题的办法
public class Customer
{
public int CustomerId { get; set; }
public string Name { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string Address3 { get; set; }
public Customer Clone()
{
// where the reference is not detached
var employee1 = new Customer
{
Name = Name,
Address1 = Address1,
Address2 = Address2,
Address3 = Address3
};
// with reference detached
var serialisedData = JsonConvert.SerializeObject(this);
var employee2 = JsonConvert.DeserializeObject<Employee>(serialisedData);
// return employee1 or employee2;
return employee1;
}
}
公共类客户
{
public int CustomerId{get;set;}
公共字符串名称{get;set;}
公共字符串地址1{get;set;}
公共字符串地址2{get;set;}
公共字符串地址3{get;set;}
公共客户克隆()
{
//其中引用未分离
var employee1=新客户
{
Name=Name,
地址1=地址1,
地址2=地址2,
地址3=地址3
};
//参考分离
var serialisedData=JsonConvert.SerializeObject(this);
var employee2=JsonConvert.DeserializeObject(serialisedData);
//返回员工1或员工2;
返回员工1;
}
}
对于SQL Server-这肯定会失败-因为Order
是一个保留的T-SQL关键字,如果您使用它作为表名,您必须将其放在方括号中-[Order]
…在LINQ中,我想您没有很好地理解我的问题,请重新阅读Hanks Marc,是的,我同意。忘了将reserve关键字括在方括号内。Mazilia,我没有注意到您正在查找LINQ查询,但将上述逻辑转换为LINQ并不困难?如果这有助于您: