C# 生成的实体框架代码
实体框架4生成的代码——主要是AddTo和Create方法——我应该直接使用它们吗?我试图理解Create方法。例如,CreateDinner方法(在NerdDinner中)如下所示:C# 生成的实体框架代码,c#,.net,asp.net-mvc,entity-framework,entity-framework-4,C#,.net,Asp.net Mvc,Entity Framework,Entity Framework 4,实体框架4生成的代码——主要是AddTo和Create方法——我应该直接使用它们吗?我试图理解Create方法。例如,CreateDinner方法(在NerdDinner中)如下所示: public static Dinner CreateDinner(global::System.Int32 dinnerID, global::System.String title, global::System.DateTime eventDate, global::System.String descri
public static Dinner CreateDinner(global::System.Int32 dinnerID, global::System.String title, global::System.DateTime eventDate, global::System.String description, global::System.String hostedBy, global::System.String contactPhone, global::System.String address, global::System.String country, global::System.Double latitude, global::System.Double longitude)
{
Dinner dinner = new Dinner();
dinner.DinnerID = dinnerID;
dinner.Title = title;
dinner.EventDate = eventDate;
dinner.Description = description;
dinner.HostedBy = hostedBy;
dinner.ContactPhone = contactPhone;
dinner.Address = address;
dinner.Country = country;
dinner.Latitude = latitude;
dinner.Longitude = longitude;
return dinner;
}
没有SubmitChanges(),当我查看引用时,不会在任何地方调用此方法。此方法的目的是什么?实体框架默认代码生成模板为模型中的每个实体对象创建一个。此静态方法允许您快速创建一个新实体,其参数列表包含类中所有不可为null的属性(而不是所有属性)。
因此,它并不意味着要保存或向DB提交任何内容。实体框架默认代码生成模板为模型中的每个实体对象创建一个。此静态方法允许您快速创建一个新实体,其参数列表包含类中所有不可为null的属性(而不是所有属性)。
因此,它并不意味着要保存或向数据库提交任何内容。我想我是在试图理解工厂模式如何与这个实体框架代码相适应。您能帮助我理解为什么使用这个工厂方法而不是仅仅使用实体的构造函数来创建实体会更快:entity e=new entity()正如我所说的,它的参数列表只包含类中不可为null的属性,因此您可以快速提出将该对象保存在数据库中的最低要求。当然,您可以直接使用对象初始值设定项语法或类构造函数,但是您可能会忘记初始化所有不可为空的字段,因此在运行时保存将失败。除此之外,它并没有比构造函数更快,因为正如您所看到的,即使这个工厂方法也仅仅是一个对象初始化器实现。我想我正在试图理解工厂模式如何与这个实体框架代码相适应。您能帮助我理解为什么使用这个工厂方法而不是仅仅使用实体的构造函数来创建实体会更快:entity e=new entity()正如我所说的,它的参数列表只包含类中不可为null的属性,因此您可以快速提出将该对象保存在数据库中的最低要求。当然,您可以直接使用对象初始值设定项语法或类构造函数,但是您可能会忘记初始化所有不可为空的字段,因此在运行时保存将失败。除此之外,它在任何方面都不比构造函数快,因为正如您所看到的,即使这个工厂方法也仅仅是一个对象初始化器实现。