亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

2 域類中的構造函數

2 域類中的構造函數

C#
繁星淼淼 2023-08-13 16:23:41
我正在接受培訓并查看一些網絡應用程序的代碼。我們在我們的組織中使用 MVC,我不確定為什么我們需要 2 個這樣的構造函數,請解釋一下,以便我可以更好地了解它。謝謝。namespace ddc.Core.Domain{    public class Request : Entity    {        public Request()        {        }        public Request(int buildingId, int adId, DateTime eventDate, DateTime eventStart, DateTime eventEnd, DateTime? timeOfApproval)        {            this.BuildingId = buildingId;            this.AdId = adId;            this.EventDate = eventDate;            this.StartTime = eventStart;            this.PowerNeed = powerNeed;            this.EventDescription = eventDescription;            this.EnteredBy = enteredBy;            this.EnteredOn = enteredOn;            this.TimeOfApproval = timeOfApproval;        }        public virtual int BuildingId { get; set; }        public virtual int AdId { get; set; }        public virtual DateTime EventDate { get; set; }        public virtual DateTime StartTime { get; set; }        public virtual DateTime EndTime { get; set; }        public virtual DateTime? TimeOfApproval { get; set; }    }}
查看完整描述

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.

因此這個類有兩個構造函數。


查看完整回答
反對 回復 2023-08-13
?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

如果您使用實體框架,則必須有一個無參數構造函數。當實體框架從數據庫查詢映射到實體時,使用默認構造函數實例化實體的新實例,以使用從數據庫檢索的數據填充它。


因此,當您擁有第二個時,您可以創建一個實例并設置所有屬性


new Request(buildingId, adId, ...);

您需要為 EF 添加第一個(無參數構造函數)。它允許創建一個實例并僅設置您需要的屬性(或不設置任何屬性),因為所有屬性都有公共設置器


new Request

{

    BuildingId =  buildingId,

    AdId =  adId,

    ...

}


查看完整回答
反對 回復 2023-08-13
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

無參數構造函數應該是因為實體框架需要它從數據庫創建對象。我建議為此使用內部范圍。


查看完整回答
反對 回復 2023-08-13
  • 3 回答
  • 0 關注
  • 164 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號