我有一个简单的方法,我使用实体框架将给定的客户信息保存到数据库中:
public Customer AddCustomer(Customer customer)
{
using (var context = DataObjectFactory.CreateContext())
{
context.AddObject("CustomerEntities", Mapper.Map(customer));
context.SaveChanges();
return customer;
}
}
客户类型非常简单,它由Id和客户名称组成,因此当我们想要保存客户时,我只需将客户对象传递给AddCustomer方法,此时Id为null且Name字段包含我想要保存到数据库的名称。
这样工作正常,名称会被插入到数据库中,但是我想要做的是将已保存的客户ID返回并返回到调用函数,无论如何实现此目的?
编辑:
这是使用的Mapper方法:
internal static class Mapper
{
internal static IList<Customer> Map(IEnumerable<CustomerEntity> entity)
{
return entity.Select(Map).ToList();
}
internal static Customer Map(CustomerEntity entity)
{
return new Customer
{
CustomerId = entity.CustomerId,
Name = entity.Name
};
}
internal static CustomerEntity Map(Customer customer)
{
return new CustomerEntity
{
CustomerId = customer.CustomerId,
Name = customer.Name
};
}
}
由于
答案 0 :(得分:2)
对Mapping部分有一点疑问,因为我们不知道Mapper.Map(customer)
返回了什么......但我很确定它确实会返回一个新的实例......所以{{ 1}}不会被更改,因为您没有将customer.Id
添加到上下文,但是customer
Mapper.Map(customer)