以前使用EF4时,我添加到数据库的所有对象都遵循(可能是错误的)模式
Poll oPoll = new Poll();
oPoll.Name = "My Special Poll Question";
context.AddToPolls(oPoll);
context.saveChanges();
但是当我切换到EF5时,我需要使用create对象。
Poll oPoll = context.Poll.Create();
oPoll.Name = "My Special Poll Question";
context.AddToPoll(oPoll);
context.SaveChanges();
由于我现在有大约3,000页的代码,我真的不想对所有新关键字进行查找,也不想手工完成。是否有一种很好的方式(通过工具或其他方式)将此模式更新为EF5的新模式?
答案 0 :(得分:4)
如果您知道所有实体的名称,则可以进行全局正则表达式替换:
假设你有Poll,Vote和Person作为类型,你可以替换:
(Poll|Vote|Person) (.+) = new .+\(\);
使用
$1 $2 = context\.$1\.Create\(\);
将Poll oPoll = new Poll();
转变为Poll oPoll = context.Poll.Create();
要添加要替换的额外实体类型,只需编辑正则表达式的第一部分。