3 回答

TA贡献1829条经验 获得超6个赞
具有大量参数的构造函数允许某人实例化一个对象并在一次构造函数调用中设置所有属性,这通常非常方便:
var request = new Request(buildingId, adId, eventDate, eventStart, eventEnd, timeOfApproval);
但是,一旦定义了自己的构造函数,就不再有自动生成的默认构造函数(它允许您创建不带任何参数的对象),因此必须手动定义。
var request = new Request();
// Later...
request.BuildingId = buildingId;
request.AdId = adId;
request.EventDate = eventDate;
//...etc.
因此这个类有两个构造函数。

TA贡献1802条经验 获得超10个赞
如果您使用实体框架,则必须有一个无参数构造函数。当实体框架从数据库查询映射到实体时,使用默认构造函数实例化实体的新实例,以使用从数据库检索的数据填充它。
因此,当您拥有第二个时,您可以创建一个实例并设置所有属性
new Request(buildingId, adId, ...);
您需要为 EF 添加第一个(无参数构造函数)。它允许创建一个实例并仅设置您需要的属性(或不设置任何属性),因为所有属性都有公共设置器
new Request
{
BuildingId = buildingId,
AdId = adId,
...
}
- 3 回答
- 0 关注
- 133 浏览
添加回答
举报