0

我在我的 C# 项目中使用实体框架进行数据库连接。

假设我的数据库中有一个表,它有 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 行重复了很多。所以我在想,为什么实体框架没有带参数的构造函数?我认为也许 db 中可以为 null 的列可能是导致此问题的原因。

4

2 回答 2

1

实体框架试图尽可能通用。此外,某些模型可能具有 10 多个属性。如果您只需要分配其中的一小部分,那将非常混乱。另一个原因是在实体框架内部构建模型会很麻烦。

这些类是使用partial关键字生成的,您应该可以自己添加它。

于 2013-03-21T16:33:16.763 回答
1

EF 为其生成的每个实体(类)生成静态构造函数 CreateX 方法。例如,在我的一个用户类中,我可以执行以下操作:

User user = User.CreateUser(userID, password, email, userTypeId);

在快速设置实体类的新实例方面,这可以满足您的大部分需求。当然,这不会将新实例添加到集合中或保存更改;您可能想要创建 50,000 个实例,而每次保存都是浪费的。

于 2013-03-21T16:35:16.120 回答