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