С тех пор, как я прочитал о Code-First, я обнаружил, что с этим может быть проблема (хотя это всего лишь предварительный просмотр) У меня есть 2 проблемы с выпуском EF4 CTP5, как показано ниже:
Как сказано "Новый API отслеживания изменений"
но он не отслеживает изменения я
Угадай. По сравнению с LINQ to SQL я
привести пример, чтобы увидеть, что
каждый метод реагирует:
LINQ to SQL:
Dim db2 As New LINQDataContext
Dim db3 As New LINQDataContext
db2.Product.FirstOrDefault(Function(m) m.ID = 100).Name = "Change1"
db3.Product.FirstOrDefault(Function(m) m.ID = 100).Name = "Change2"
db2.SubmitChanges()
db3.SubmitChanges()
EF 4 CTP5:
Dim db2 As New ProductContext
Dim db3 As New ProductContext
db2.Product.FirstOrDefault(Function(m) m.ID = 100).Name = "Change1"
db3.Product.FirstOrDefault(Function(m) m.ID = 100).Name = "Change2"
db2.SaveChanges()
db3.SaveChanges()
Эти коды отличаются только в своих контекстах. В LINQ to SQL второй SubmitChanges вызовет исключение «Строка не найдена или изменена». , но в EF он проигнорирует изменения и продолжит изменять строку дважды, что я считаю плохим, потому что мы нужно учитывать параллелизм, верно?