EDM生成的类是ORM/Persistence类。您可以使用这些类来查询/从/到数据库进行更改。在更改数据库时,您需要将任何DTO对象转换为POCO对象。
ORM是关于将对象映射到数据库中的数据,而不是处理insert into
语法将记录插入到应用程序中的数据库,您使用StudentSet.Add
来添加新数据。 johndoe
信息将被转换为sql语法,EF将每个属性映射到每个列时将其转换为查询。
Add
方法会将johndoe
信息作为Added
存储在内存中,但不会立即执行到数据库。如果您有其他Add
方法,它也将被标记为Added
。您拨打SaveChanges
的那一刻,所有更改将通过发送生成的查询保存到数据库中。
DTO和EF实体之间的映射发生在添加johndoe
之前。您可能会在UI中使用另一个DTO类。您需要手动映射它或使用映射器库来从DTO对象创建一个POCO对象。例如:
// studentDto as parameter
var johndoe = new Student
{
Name = studentDto.StudentName,
Age = studentDto.StudentAge
};
MyContext.StudentSet.Add(johndoe);
// studentDto might have another information as well
var johndoeSubject = new Subject
{
Name = studentDto.SubjectName,
Years = studentDto.SubjectYears
};
MyContext.SubjectSet.Add(johndoeSubject);
MyContext.SaveChanges();
你有什么试过的,是的,你的代码会把JohnDoe放到你的数据库中。如果您在DTO上携带数据,则需要根据DTO的属性设置POCO。 – 2014-09-13 13:28:52