2011-11-25 32 views
0

請您在下面的代碼中幫助我,無論接口和類的結構是否合適?模型類(MVC)中的c#中的接口類

我的意思是說,我需要在接口loaddata(), ,但我有2個不同的方法(返回列表),以滿足2個不同的表的單一方法,以迎合2個不同的表。

類EmployeeDetails和JobDetails是隻讀類,數據從外部數據庫獲取。

public interface IGetData 
{ 
    public List<EmployeeDetails> LoadData{get;set;} 
    public List<JobDetails> LoadData2{get;set;} 
} 

public class EmployeeDetails : IGetData 
{    
    public int EmployeeID { get; set; } 
    public string EmployeeNumber { get; set; } 
    public string EmployeePosition { get; set; } 
    public string EmployeeDivision { get; set; } 
    public string EmployeeName { get; set; } 
    public string ApproverName { get; set; } 
    public int ApproverID { get; set; } 

    public EmployeeDetails() 
    { 
    public string LoggedInEmployeeName 
    { 
     get 
     { 
     return System.Web.HttpContext.Current.User.Identity.Name; 
     } 
    } 

    STASEntities STASContext = new STASEntities(); 

    public List<EmployeeDetails> LoadData 
    { 
     get 
     { 
     var EmployeeResults = from e in STASContext.Employee_VIEW 
           where 
           e.UserName == LoggedInEmployeeName 
           select new EmployeeDetails 
           { 
           EmployeeDivision = e.BusinessUnitName, 
           EmployeeID   = e.EmployeeId, 
           EmployeePosition = " ", 
           EmployeeName  = e.EmployeeName, 
           ApproverID   = e.EmpAppId, 
           ApproverName  = e.ApproverName, 
           EmployeeNumber  = e.EmployeeNumber 
           }; 
     return EmployeeResults.ToList(); 
     } 
    } 
    } 
} 

public class JobDetails:EmployeeDetails, IGetData//for future employee assigned against job. 
{ 
    // public IList<ContractDetails_View> JobNameList { get; set; } 
    public int ContractID { get; set; } 
    public string JobName { get; set; } 
    public JobDetails() { 
    public List<JobDetails> LoadData2 
    { 
    get 
    { 
     var jobResult = from c in STASContext.ContractDetails_View 
         select new JobDetails 
         {      
         JobName=c.JobName, 
         ContractID = c.ContractId 
         }; 

     return jobResult.ToList(); 
    } 
    } 
} 
+3

格式化您的代碼,問一個真正的問題(清除您的問題)。儘可能清楚。 –

+0

我無法理解這個問題......請問一個問題,你能具體嗎?它會幫助他人正確回答。 – pramodtech

回答

1

不知道更多關於您的代碼,這將是一個更多的猜測。但是你的界面看起來不對。它看起來不對,因爲EmplyeeeDetails類不調用LoadData2函數,並且JobDetails不調用LoadData函數。

看起來你應該有兩個單獨的接口(他們看起來更像函數性質):

public interface IGetEmployeeDetails 
{ 
    List<EmployeeDetails> LoadEmployeeDetails(); 
} 

public interface IGetJobDetails 
{ 
    List<JobDetails> LoadJobDetails(); 
} 

,然後分別實現它們:

public class EmployeeDetails : IGetEmployeeDetails 
{ 
    //class stuff 
} 

public class JobDetails : EmployeeDetails, IGetJobDetails 
{ 
    //class stuff 
} 

因爲JobDetails繼承EmployeeDetails並實現IGetJobDetails,它將可用於接口調用,LoadEmployeeDetails()LoadJobDetails()

你也許可以用一個通用的版本替換這兩個接口:

public interface IGetDetails<T> { 
    List<T> LoadData(); 
} 

其他,你需要指定實際的問題是什麼。

+0

非常感謝。我已經實現了上面提到的代碼,它工作正常。 –