Drill Down应用Audit-Finding模型的LINQ Any()方法技术咨询
下钻(Drill Down)应用实体类与LINQ Any()实现咨询
我开发了一个典型的下钻(Drill Down)应用,数据层级结构很清晰:一个Audit(审计)对应多个Finding(发现)。下面是这个应用的实体类代码:
Audit 实体类
public class Audit { private string _auditAcnCd; private string _title; private string _summary; [Key] [Column("audit_id")] public int AuditID { get; set; } [Required(ErrorMessage = "ACN Required")] [Display(Name="ACN:")] [Column("audit_acn_cd")] public string AuditAcnCd { get { return _auditAcnCd; } set { _auditAcnCd = value?.Trim(); } } [Required(ErrorMessage = "Title Required")] [Display(Name = "Title:")] [Column("audit_report_title_tx")] public string Title { get { return _title; } set { _title = value?.Trim(); } } [Required(ErrorMessage = "Issuer Required")] [Display(Name="Issuer:")] [Column("audit_issuer_tx")] public string Issuer { get; set; } [Display(Name = "Sensitive Designation")] [Column("audit_sensitive_cd")] public string AuditSensitiveCode { get; set; } [Display(Name = "Alternative Product")] [Column("audit_alternate_product_cd")] public string AuditAlternateProductCode { get; set; } [RegularExpression("([1-9][0-9]*)", ErrorMessage = "Priority must be a number.")] [Display(Name = "Priority:")] [Column("audit_priority_cd")] public short? Priority { get; set; } [StringLength(maximumLength: 1000,ErrorMessage = "Max Length: 1000")] [Display(Name = "Summary:")] [Column("audit_summary_tx")] public string Summary { get { return _summary; } set { _summary = value?.Trim(); } } [Column("audit_gao_contact_tx")] [Display(Name = "GAO Contact:")] [StringLength(maximumLength: 200, ErrorMessage = "Max Length: 200")] public string AuditGaoContactText { get; set; } [Column("audit_gao_job_cd")] [Display(Name = "GAO Job Code:")] [StringLength(maximumLength: 200, ErrorMessage = "Max Length: 30")] public string AuditGaoJobCode { get; set; } [Display(Name = "Lead Office:")] [Column("audit_lead_office_id")] public short? LeadOfficeID { get; set; } #region Navigation Properties [Required(ErrorMessage = "Audit Type Required.")] [Display(Name = "Audit Type:")] [Column("audit_audit_type_id")] public short AuditTypeID { get; set; } [Display(Name = "Audit Type:")] public AuditType AuditType { get; set; } [Column("audit_status_id")] public int StatusID { get; set; } public Status Status { get; set; } [Required(ErrorMessage = "Office is Required.")] [Display(Name = "Offices:")] [Column("audit_office_id")] public short? OfficeID { get; set; } public Office Office { get; set; } [ForeignKey("AuditID")] public External External { get; set; } public IEnumerable<AuditLog> AuditLogs { get; set; } public IEnumerable<Finding> Findings { get; set; } public IEnumerable<Assignment> Assignments { get; set; } [Column("audit_update_staff_id")] public short UpdateStaffID { get; set; } [Column("audit_oig_manager_id")] [Display(Name = "OIG Audit Manager:")] public short? OigAuditManagerId { get; set; } [Display(Name = "OIG Audit Manager:")] [ForeignKey("OigAuditManagerId")] public Staff OigAuditManager { get; set; } [Column("audit_fsa_office_id")] [Display(Name = "FSA Audit Lead:")] public int? FsaLeadOfficeId { get; set; } [Display(Name = "FSA Audit Lead:")] [ForeignKey("FsaLeadOfficeId")] public FSAOffice FsaLeadOffice { get; set; } [ForeignKey("LeadOfficeID")] public Office LeadOffice { get; set; } #endregion }
Finding 实体类
[Table("finding")] public class Finding { private string _findingText; [Key] [Column("finding_id")] public int FindingId { get; set; } [Column("finding_audit_id")] public int FindingAuditId { get; set; } [Column("finding_cd")] [Display(Name = "Finding #")] [StringLength(15)] public string FindingCd { get; set; } [Column("finding_tx")] [Required(ErrorMessage = "Description Required")] [StringLength(7000)] public string FindingText { get { return _findingText; } set { _findingText = value?.Trim(); } } [Column("finding_page_cd")] [StringLength(100)] public string FindingPageCd { get; set; } [Column("finding_joint_cd")] public string FindingJointCd { get; set; } [Column("finding_compliance_tx")] [StringLength(20)] public string FindingComplianceText { get; set; } [Column("finding_prior_year_cd")] [Display(Name = "Repeat Finding")] public string FindingPriorYearCd { get; set; } [Column("finding_decision_cd")] public string FindingDecisionCd { get; set; } [Column("finding_request_decision_cd")] public string FindingRequestDecisionCd { get; set; } [Column("finding_decision_ogc_concur_cd")] public string FindingDecisionOgcConcurCd { get; set; } [Column("finding_pdl_id")] public int? FindingPdlId { get; set; } [Display(Name = "Significant")] [Column("finding_significant_cd")] public string FindingSignificantCd { get; set; } [Column("finding_on_stay_cd")] public string FindingOnStayCd { get; set; } [Column("finding_stay_request_cd")] public string FindingStayRequestCd { get; set; } [Column("finding_last_update_dt")] public DateTime FindingLastUpdateDate { get; set; } [Column("finding_update_staff_id")] public short? FindingUpdateStaffId { get; set; } [Column("finding_cd_org")] public...
现在我想请教一下,基于这个实体模型,如何使用LINQ的Any()方法来实现相关的业务逻辑?
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

