我有两张桌子如下
1)客户
customerId Int (primary key)
customerName Varchar(50)
Age Int
2)客户贷款
Id Int
customerId Int (Foreign key)
customerName Varchar(50)
Age Int
Loan float
从jquery中,我得到了webservice webmethod中的动态json对象形式的多条记录,如下所示(InsertData)。
通过使用IList和实体框架,我插入了多个记录。
我的要求是在插入customers记录时,我想从customer表中删除一些字段,并在customerloan表中添加一些字段。
最后,我想插入从customer表生成的customerID,其中CustomerLoan表中还有几个字段。
示例:客户
customerId customerName Age
100 John 32
101 Jacob 35
例如:客户贷款
Id customerId customerName Age Loan
1 100 John 32 1500
2 101 Jacob 35 2000
[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public dynamic InsertData(int revision, int appID, dynamic jsonMaster)
{
dynamic json = jsonMaster;
IList<Customer> customers = ((object[])json).Select(t => new Customer
{
customerId = Convert.ToInt32((((IDictionary)t)["customerId"]) ?? -1),
customerName = ((((IDictionary)t)["customerName"]) ?? "").ToString(),
Age = Convert.ToInt32(((IDictionary)t)["Age"]),
Revision = Convert.ToInt32((((IDictionary)t)["Revision"])),
}).ToList(); ;
lock (_updatePointsLock)
{
using (CustomerEntities context = new CustomerEntities())
{
int currentRevision = context.Customer.Max(x => x.Revision) ?? 0;
if (currentRevision >= revision)
{
foreach (Customer cobj in customers)
{
Customer obj = context.Customer.Where(x => x.customerId == cobj.salesMasterId).FirstOrDefault();
if (obj == null)
{
cobj.Revision = currentRevision + 1;
context.Customer.Add(cobj);
**CustomerLoan objLoan = new CustomerLoan();
objLoan.customerId = cobj.customerId;
objLoan.customerName = cobj.customerName;
objLoan.Age = cobj.Age;
objLoan.customerLoan = 1500;
context.CustomerLoan.Add(objLoan);**
}
else
{
obj.customerName = cobj.customerName;
obj.Age = cobj.Age;
obj.Revision = currentRevision + 1;
}
}
context.SaveChanges();
return new
{
Revision = currentRevision + 1,
Customer = context.Customer.Where(x => x.Revision > revision).Select(x => new
{
x.customerId,
x.customerName,
x.Age,
Revision = x.Revision,
}).ToList()
};
}
else
{
return new { Revision = revision };
}
}
}
}
在customerLoan表的customerId字段中插入上述代码(-1)值。
如果创建对象以插入未获取的客户foreach值之外。
如果有人能帮忙在customerLoan中插入identity-value-customer表,我将不胜感激。