我在我的C#项目中使用Entity Framework进行数据库连接。
假设我的数据库中有一个包含3列的表: 桌子:车 列:id,颜色,类型,numberOfDoors
以下是我为此表创建新记录的方法:
Car c = new Car();//default constructor
c.color = "blue";
c.type = "Opel";
c.numberOfDoors = 2;
myDatabase.tblCar.AddObject(c);
myDatabase.SaveChanges();
我在我的项目中的很多地方都这样做,所以前4行重复了很多。所以我在想,为什么Entity Framework没有带参数的构造函数?我认为也许db中可能为null的列可能就是这个原因。
答案 0 :(得分:1)
实体框架试图尽可能地一般化。此外,某些型号可能还有10多种属性。如果你只需要分配它们的一小部分,这将是非常混乱的。另一个原因是在Entity Framework中构建模型会很麻烦。
使用partial
关键字生成类,您应该可以自己添加。
答案 1 :(得分:1)
EF为它生成的每个Entity(类)生成静态构造函数CreateX方法。例如,在我的一个User类中,我可以执行以下操作:
User user = User.CreateUser(userID, password, email, userTypeId);
在快速设置实体类的新实例方面,这可以满足您的大部分要求。当然,这不会将新实例添加到集合或保存更改;你可能想创建50,000个实例,每次保存都会浪费。