EntityFramework:使用行值作为参数添加行函数

时间:2014-09-29 07:22:03

标签: c# entity-framework insert

我最近使用EntityFramework来替换DataSet的使用。 EntityFramework中缺少数据集中的一个函数。

使用数据集,我可以使用现成的AddRow方法:

this.DataSet.CustomerDataTable.AddCustomerRow(int cId, int Name, int Telephone, ...)

此功能是自动生成的,表中的每一列都映射到一个参数。这是非常有用的,因为我不会忘记任何专栏。但是使用EntityFramework,这就是我能做的:

Customer newCustomer = new Customer();
newCustomer.Name = "John";
newCustomer.Telephone = "04xxxxxxxx";
...
context.Customers.Add(newCustomer );

如果不是参数化的AddRow方法,很容易忘记为其中一个字段赋值。由于我无法找到自动生成的AddEntity函数,我必须自己编写。我被告知这个功能是使用EntityFramework 4生成的。我使用6.1.1并且无法找到它。

请您告诉我如何找到这种方法或取得类似的结果,而不必自己编写方法?

1 个答案:

答案 0 :(得分:0)

也许您正在寻找Asp.net MVC Framework

的模型绑定

来自MSDN

  

DbSet.Add方法

     

将给定实体添加到已添加状态的集合下的上下文中,以便在调用SaveChanges时将其插入到数据库中。

顺便说一下,你的问题不是很清楚,在一个常见的MVC场景中,例如,模型的映射是由Model Binder

完成的。

因此,如果您必须向DbSet添加新闻

 public ActionResult Create([Bind(Include = "Title,Body,SubTitle")]News model){
  if (ModelState.IsValid){
    ApplicationDbContext.News.Add(model);
    ApplicationDbContext.News.SaveChanges();

  }
}

绑定的艰苦工作完全由Model Binder完成