我希望有一种方法可以使用相同的代码来插入和更新。
例如,我使用实体框架插入如下所示的新客户端。
using (var context = new GenWebEntities())
{
clientObj = new Client();
var client = new Client
{
FirstName = "John",
LastName = "Smith"
};
clientObj = client;
context.SaveChanges();
}
如果我也可以使用相同的代码来更新客户端,那么我就不必编写双重代码了。
using (var context = new GenWebEntities())
{
clientObj = context.Clients.Single(c => c.ClientId == 31);
var client = new Client
{
FirstName = "Johnathan", // Updated First Name
LastName = "Rock" // Updated Last name
};
clientObj = client;
context.SaveChanges();
}
如果有一种方法可以对插入和更新进行编码,我很想知道上面这个方法是如何插入新记录的。
**更新** 我遇到这个解决方案的问题是我有一对多的关系。
示例:
我有另一个表ClientPayment是一对多。因此,当我需要更新ClientPayment时,如何引用此表进行更新?
对于我愿意做的插入:
client.ClientPayments.Add(new ClientPayment { Type = "Credit Card", CardNumber = "4111-1111-1111-1111")
感谢。
答案 0 :(得分:0)
也许是这样的:
private void SaveAndUpdate(int? ClientId)
{
using (var context = new GenWebEntities())
{
Client client;
if(ClientId.HasValue)
client=context.Clients.Single(c => c.ClientId == ClientId.Value);
else
client = new Client();
client.FirstName = "Johnathan";
client.LastName = "Rock";
if(!ClientId.HasValue)
context.Clients.Add(client)
context.SaveChanges();
}
}