1

在我们的一个项目中,我们使用 DbFirst EntityFramework。

所有实体都通过ObjectContext.AddObject(string, object)方法添加到数据库中。

我想用ObjectSet<TEntity>.AddObject(TEntity)方法调用来改变这些调用。所以我将拥有该方法的强类型版本。

var person = new Person();
e.AddObject("Persons", person);

var person = new Person();
e.Persons.AddObject(person);

这种替换是否有任何可能的问题?

4

1 回答 1

1

不,这个替换没有问题。我什至认为前者存在问题,即。没有编译时检查的字符串参数(这可能正是您想要更改它的原因)。

当前的 EF 源显示,在幕后ObjectSet.AddObject除了执行之外什么都不做ObjectContext.AddObject(string, object)。字符串参数由 EF 本身安全地提供。

EF 4 源不是公开可用的,但我没有理由假设那里的情况根本不同。

于 2013-09-05T09:15:03.520 回答