C# AddObject和AddToMyTable(特定表名)之间有什么区别?

C# AddObject和AddToMyTable(特定表名)之间有什么区别?,c#,entity-framework,C#,Entity Framework,我是MVC4和实体框架的新手 如果这个问题没有道理,请让我解释清楚 在我正在处理的示例中,我注意到我可以使用AddObject或AddToMyTableName插入数据库。(数据库中存在的我的特定表名) 所以我有点困惑,这两者有什么区别? 在什么情况下我应该使用哪一种 下面是一个非常简单的示例: 在控制器中: 以下是AddObject的示例: using (myProj.Models.myProjEntities db = new Models.myProjEntities()) {

我是MVC4和实体框架的新手

如果这个问题没有道理,请让我解释清楚

在我正在处理的示例中,我注意到我可以使用AddObject或AddToMyTableName插入数据库。(数据库中存在的我的特定表名)

所以我有点困惑,这两者有什么区别? 在什么情况下我应该使用哪一种

下面是一个非常简单的示例:

在控制器中:

以下是AddObject的示例:

using (myProj.Models.myProjEntities db = new Models.myProjEntities())
  {
      myProj.Models.TestClass myTestClass = new myProj.Models.TestClass();
      myTestClass.prop1 = "test1";
      myTestClass.prop2 = "test2";

      db.MyTable.AddObject(myTestClass);
      db.SaveChanges();
  }
下面是AddToSpecificTable的示例:

using (myProj.Models.myProjEntities db = new Models.myProjEntities())
  {
      myProj.Models.TestClass myTestClass = new myProj.Models.TestClass();
      myTestClass.prop1 = "test1";
      myTestClass.prop2 = "test2";

      db.AddToMyTable(myTestClass);
      db.SaveChanges();
  }
它们都将值插入到db中,并且在我的示例中都是一样的。我敢肯定有些情况下,其中一个有效,另一个无效

有人能解释一下区别吗

感谢现在认为
AddTo
方法已被弃用,并已与
EF4
和以前的版本一起使用。在
EF4.x
中引入了新的
AddObject()
作为
AddTo
的替换方法,但由于某些(未知)原因,
AddTo
方法仍然可用,即使建议使用新的
AddObject()
方法。到目前为止,使用
EF5+
只需使用
Add()
。很难找到替换方法的确切原因,但我想这很可能是历史原因,随着
EF
的发展,方法也发生了变化,以反映新版本


所以,如果你考虑为什么(如果在任何情况下)一个比另一个好,那么只使用最常用的(当然,如果你没有一些版本限制,比如,如果你使用EF 4)。否则,您将一无所获,通常在某些方法被标记为不推荐后,它迟早会被删除,因此如果您使用

AddTo
,您可能需要重写部分代码,因为在将来的某个版本中,此方法不再出现。

这与MVC有任何关系吗?可能是关于EntityFramework的问题?对不起,我正在研究的示例是MVC4,你是对的@奎蒂以前比我编辑过。谢谢