2012-05-27 65 views
0

這裏是我的問題,我會盡量讓我的問題儘可能簡單。所以,我有兩個類和兩個表,分別與數據庫中的每個表都沒有關聯其他的,讓它們命名爲A類和B類至極的樣子:使用兩個表中的行創建第三個表

public class User 
{ 
[Key] 
public int userID{ get; set; } 

public User(string aName, string aPhone, string aEmail) 
{ 
    Name = aName; 
    Email= aEmail; 
    Phone= aPhone; 
} 

public string Name { get; set; } 
public string Email{ get; set; } 
public string Phone{ get; set; } 
} 

public class Work 
{ 
[Key] 
public int workID{ get; set; } 

public Work(string aWorkName, string aAddress, string sPosition) 
{ 
    WorkName= aWorkName; 
    Address= aAddress; 
    Position= aPosition; 
} 
public string WorkName{ get; set; } 
public string Address{ get; set; } 
public string Position{ get; set; } 

} 

什麼,我想現在要做的是創建三等功,並在database.I第三個表應該能夠填補列第三張表與前兩張表中的信息。例如,它的列應該是名稱電話電子郵件工作名稱地址位置。所以我採用NameID和工作ID並基於這些主鍵我應該填寫第三個表的所有信息。應該怎麼做?我認爲應該做一些事情像這樣:

public class CombinedTable 
{ 
[Key] 
public int cID{ get; set; } 
public User user{ get; set; } 
public Work work{ get; set; } 
} 

,並允許在主函數中說一些這樣的查詢:

var UserResult = from p in db.User 
where p.UserId.Equals(userID) 
select p; 
var WorkResult= from p in db.Work 
where p.WorkID.Equals(workID) 
select p; 

var combinedInfo= new CombinedTable() 
     { 
      User = UserResult, 
      Work= WorkResult 
     }; 
     db.CombinedTable.Add(combinedInfo); 
     int savedChanges = db.SaveChanges(); 

但我很想念something.I希望得到您的idea..I正在使用實體框架和代碼首先,任何建議都將非常感激。謝謝。附: :只是爲了澄清一次。如果我的工作ID = 5和用戶ID = 1,在第三個tabe中,應該從ID爲1的用戶的信息中創建新的行,並使用ID 5。希望有人把它..

+0

試舉實時類的名字,而不是A和B.這將幫助其他人瞭解情況更好 – Shyju

回答

0

假設你有一個1至

public class User 
{ 
    public int UserID { set;get;} 
    public string Name { set;get;} 
    public string Email{ set;get;} 
    public virtual IEnumerable<Work> Works { set;get;} 
} 

public class Work 
{ 
    public int WorkID { set;get;} 
    public string WorkName { set;get;} 
    public string Hours { set;get;} 
    public string Location { set;get;} 
} 

這將創建1張桌子,很多關係,你的用戶和工作實體之間的多對多關係(一個用戶可以有很多工作)應該能夠像這樣容易地查詢它

int userId=34; 
var thatUser=dbContext.Users.Find(userId); 
var works=thatUser.Works; 

編輯:如果你想要第三個表,創建一個類爲

public class UserWork 
{ 
    public int UserWorkID { set;get;} 
    public int UserID { set;get} 
    public int WorkID { set;get;} 
    public virtual User User { set;get;} 
    public virtual Work Work {set;get;} 
} 
+0

噢噢噢,是的,它是在從開始我眼前,我的錯誤是,我試着用一個查詢,而不是使用你提出的東西。謝謝你很多。快... –

+0

@MartinIvanov:不客氣。 – Shyju

相關問題